我正在尝试遍历子数据框列表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)
它有效。
答案 0 :(得分:2)
我认为问题在于您尝试使用c
构建数据框列表,这显然不起作用。 c
最终构建一个列表,其中数据框df1
和df2
的每一列都有一个条目,而不是每个数据框的条目(见下文)。请尝试使用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