R - 将函数应用于长列表的最佳方法

时间:2015-12-22 15:28:14

标签: r

我有一个很长的列表对象(长度为数百万)。我想将一个函数应用于列表中的每个条目,然后返回一个新的扩充列表。除了从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]])
}

我看过网上似乎无法找到解决这个问题的好方法,感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我认为lapply正是您所寻找的。在您的示例中,您可以使用此

获取输出
list2<- lapply(list1,function(x)change(x))