【发布时间】:2016-11-03 02:15:18
【问题描述】:
我有一个数据框列表(或我猜的值),我需要将其放入 list-list-dataframe 格式到 list-dataframe 格式。请看下面的简单示例。
library(plyr)
my_function= function(df){
means = mean(df$mpg)
sds = sd(df$mpg)
# or
# means = mtcars * rnorm(1)
# sds = cars * rnorm(1)
output = list(MEAN = means, SD = sds)
return(output)
}
list_of_dfs=plyr::dlply(.data = mtcars, .variables ='cyl')
output = lapply(list_of_dfs, my_function)
现在我想汇总它,以便 CYL=4/6/8 的所有 SD 值都在一个数据帧中,MEAN 值在第二个数据帧中。
我试过do.call(rbind, output),但我不明白。
是的,我知道我可以在这里进行某种分组,然而,这只是一个示例。您可以将列表中的每个值视为实际数据帧,而不是计算输出。
【问题讨论】:
-
您是说,对于数据集中的每个级别的
cyl,您要计算mpg的均值和标准差吗?如果是这样,有更有效的方法来做到这一点。例如,使用 plyr:ddply(mtcars, .(cyl), summarize, mean = mean(mpg), sd = sd(mpg)) -
嘿,所以也许实际上发布了有效的 R 代码,这样人们才能真正帮助你。
-
我修好了对不起,伙计们。是的,我知道您可以进行某种分组,但这只是一个基本示例 - 这些实际上是数据帧,因此如果有帮助,您可以将相应的值视为 mtcars 或 iris 等数据帧。