R - 串行应用函数到数据帧

时间:2016-08-25 04:40:12

标签: r lapply sapply

我有数据帧mydf,我将其拆分以获得像 mydf$'1' mydf$'2'...mydf$'n'这样的数据帧数。 我希望在这些数据框上应用我的函数来得到像

这样的结果
resultdf1 <- myfunc(mydf$'1')
resultdf2 <- myfunc(mydf$'2')
.....
resultdfn <- myfunc(mydf$'n')

依此类推......因为分裂中大约有35个数据帧。如果不手动编写每个帧名称和结果,我怎样才能减少工作量。

我尝试了lapply但没有正常工作。 任何帮助将不胜感激。

由于

1 个答案:

答案 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))