将 R 中大列表的每个元素传递给函数
Pass every element of a large list in R to a Function
在 R
中,假设我有一个名为 l
的 LargeList
,包含 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)
在 R
中,假设我有一个名为 l
的 LargeList
,包含 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)