循环遍历数据帧列表以计算均值

时间:2015-08-10 03:09:55

标签: r

我正在尝试遍历子数据框列表list以计算每个子数据框的均值列,我将附加到现有主数据框maindf

    list<-c(df1,df2,df3,df4)
    for (i in list) maindf$i<-rowMeans(i, na.rm=TRUE)

出于某种原因,这给了我一个错误'x' must be an array of at least two dimensions,但是对于单个数据帧,例如maindf$df1<-rowMeans(df1, na.rm=TRUE)它有效。

1 个答案:

答案 0 :(得分:2)

我认为问题在于您尝试使用c构建数据框列表,这显然不起作用。 c最终构建一个列表,其中数据框df1df2的每一列都有一个条目,而不是每个数据框的条目(见下文)。请尝试使用list

> df1 = data.frame(a = rnorm(3), b = rnorm(3))
> df2 = data.frame(a = rnorm(3), b = rnorm(3))
> c(df1, df2)
$a
[1] -1.6372272 -2.2629156 -0.6714209

$b
[1]  0.9826798  0.4961860 -0.4499279

$a
[1] -0.2011259 -0.1115386  0.8568467

$b
[1] -0.2587402  0.1787140 -0.3563370

> list(df1, df2)
[[1]]
           a          b
1 -1.6372272  0.9826798
2 -2.2629156  0.4961860
3 -0.6714209 -0.4499279

[[2]]
           a          b
1 -0.2011259 -0.2587402
2 -0.1115386  0.1787140
3  0.8568467 -0.3563370