将 R 中大列表的每个元素传递给函数

Pass every element of a large list in R to a Function

R 中,假设我有一个名为 lLargeList,包含 200 个元素,每个元素都是一个包含 1000 - 10000 行的 S3 dataframe,名为 PersonXXX.

现在我想将 l 中的每个元素(即每个 PersonXXX)传递给一个名为 fungeo(data.frame) 的函数。为此,每个 fungeo(PersonXXX) 都会产生另一个 S4:SpatialPointDataFrame。通过蛮力,我可以做 p.XXX = fungeo(PersonXXX) 200 次,但似乎不直观。因此,我尝试编写一个 for 循环,如下所示:

p[[1]]<- 0
for (i in 1: 200){
  p[[i]]<-fungeo(l[[i]])
}

其中有两个问题。首先,它实际上从来没有运行。我不断收到此错误消息:

   Error in p[[i]] <- fungeo(l[[i]]) : 
  more elements supplied than there are to replace

第二,我想获得新的 S4 数据框大列表,其中每个元素的命名与 personID 一致,假设 p.XXX 是简单 S3 数据框的 S4 t运行sformation PersonXXX.

有什么办法可以做到吗?任何帮助都将非常有用!

您可以试试 "apply" 家庭功能 或 "purrr" 包中的 "map" 函数应该做同样的工作,但后者在处理大型数据集时可能会更快

lapply(s, fungeo)
map(s,fungeo)