数据框到3D数组并在Z中计算平均值

时间:2014-04-02 17:22:58

标签: r dataframe

我有一个从CSV读取的数据框,其中包含14列和990行。每组110行包含重复的结构化数据(不是值),前5列是标签。

我现在想要创建一个14x110的新网格,这样如果列标有字母,行以数字编号,那么新网格的A1E110就是标签F1 1}}包含原始框架中F1的平均值,依此类推到N110

我之前从未使用过R,并且计算了一个单元格的平均值

mean(data[c(seq.int(3,nrow(d),110)),c(6)])

但是我需要一些帮助来重复其余的单元格并构建一个结果数据框。

1 个答案:

答案 0 :(得分:0)

将矩阵转换为3D数组

yourarray=array(unlist(yourmatrix),dim = c(110,14,9))

然后,要取平均z值,您可以执行类似

的操作
out=matrix(NA,110,14)
for(n in 1:14){
for(i in 1:110){out[i,n]=mean(b[i,n,])}}

示例

a=matrix(1:125,25,5)
b=array(unlist(a),dim = c(5,5,5))
out=matrix(NA,5,5)
for(n in 1:5){
for(i in 1:5){out[i,n]=mean(b[i,n,])}}

> out
 [,1] [,2] [,3] [,4] [,5]
 [1,]   51   56   61   66   71
 [2,]   52   57   62   67   72
 [3,]   53   58   63   68   73
 [4,]   54   59   64   69   74
 [5,]   55   60   65   70   75

希望这是你所追求的。