我有一个很长的列表对象(长度为数百万)。我想将一个函数应用于列表中的每个条目,然后返回一个新的扩充列表。除了从1到列表的长度循环之外,最好和最有效的方法是什么?下面是我正在使用的循环的一个例子。
list1 <- list("zzz yyy xxx", "zzz yyy rrr", "rrr jjj ppp", "eee bbb ccc", "qqq pppp zzz")
change <- function(entry) {
entry <- strsplit(entry, " ")[[1]]
aug_entry <- entry[!entry %in% 'zzz']
return(aug_entry)
}
我正在寻找更好的替代方案......
list2 <- list()
for (j in 1:length(list1)) {
list2[[j]] <- change(list1[[j]])
}
我看过网上似乎无法找到解决这个问题的好方法,感谢任何帮助。
答案 0 :(得分:0)
我认为lapply
正是您所寻找的。在您的示例中,您可以使用此
list2<- lapply(list1,function(x)change(x))