R - 将函数串行应用于数据帧
R - apply function to data frames serially
我有数据帧 mydf,我将其拆分以获得像 mydf$'1' mydf$'2'...mydf$'n'
这样的数据帧数量。
我希望将我的函数应用到这些数据帧上以获得类似
的结果
resultdf1 <- myfunc(mydf$'1')
resultdf2 <- myfunc(mydf$'2')
.....
resultdfn <- myfunc(mydf$'n')
依此类推...因为拆分后大约有 35 个数据帧。不为每个frame name和resultdf手动写怎么能省力呢
我尝试了 lapply 但没有正确计算出来。
任何帮助将不胜感激。
谢谢
在数据框上调用 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))
我有数据帧 mydf,我将其拆分以获得像 mydf$'1' mydf$'2'...mydf$'n'
这样的数据帧数量。
我希望将我的函数应用到这些数据帧上以获得类似
resultdf1 <- myfunc(mydf$'1')
resultdf2 <- myfunc(mydf$'2')
.....
resultdfn <- myfunc(mydf$'n')
依此类推...因为拆分后大约有 35 个数据帧。不为每个frame name和resultdf手动写怎么能省力呢
我尝试了 lapply 但没有正确计算出来。 任何帮助将不胜感激。
谢谢
在数据框上调用 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))