我有数据帧mydf,我将其拆分以获得像 mydf$'1' mydf$'2'...mydf$'n'
这样的数据帧数。
我希望在这些数据框上应用我的函数来得到像
resultdf1 <- myfunc(mydf$'1')
resultdf2 <- myfunc(mydf$'2')
.....
resultdfn <- myfunc(mydf$'n')
依此类推......因为分裂中大约有35个数据帧。如果不手动编写每个帧名称和结果,我怎样才能减少工作量。
我尝试了lapply但没有正常工作。 任何帮助将不胜感激。
由于
答案 0 :(得分:3)
在数据框上调用split
应该会为您提供较小数据帧的列表。所以也许在这个拆分列表上调用lapply
是有意义的,例如
mydf.split <- split(mydf, mydf$col)
list.result <- lapply(mydf.split, function(x) { /* do something */ })
上面会产生另一个列表,每个节点都包含你的函数的结果。如果您想要取回矢量,可以使用sapply
。例如,如果您想要每个拆分数据框中的行数,则可以执行
mydf.counts <- sapply(mydf.split, function(x) nrow(x))