假设我有一个列表,其中嵌套着另一个列表,并且我有一些仅适用于向量的函数(如stringr包中的str_replace)。该函数应在实际包含信息的每个元素上执行其工作,这就需要解决以下问题:
问题1:是否有特定的解决方案?
问题2:是否有通用解决方案?
使用循环应该可以解决问题,但这并不优雅,而且可能非常慢 - 在这里效率确实很重要。
让我们看一个例子:
问题2:是否有通用解决方案?
使用循环应该可以解决问题,但这并不优雅,而且可能非常慢 - 在这里效率确实很重要。
让我们看一个例子:
# let's start easy:
test1 <- list(c("a","d"),c("b","d"),c("c","d"))
# does not work:
str_replace(test1,"d","changed")
# but this does:
lapply(test1,str_replace,"d","changed")
# but what now ?
test2 <- list(c(list("a"),"d"),c("b","d"),c("c","d"))
# does not work! :-(
lapply(test2,str_replace,"d","changed")
list(c(list("a"),"d"),c("b","d"),c("c","d"),c(NULL),c("a","d"))
。 - petermeissner