【发布时间】:2016-07-13 14:09:58
【问题描述】:
我有 3 个矩阵在每个矩阵中存储三次测量值(矩阵 1、测量值 1、矩阵 2 测量值 2,......)
它们具有以下结构:
> a1
ACTIN 18S TET1 TET2 TET3
Control 25.943441 22.62984 <NA> 34.063107 34.034756
Sample1 24.48504 20.04858 <NA> 32.37173 32.341072
Sample2 25.265867 19.680647 28.086248 33.76187 33.41289
Sample3 24.441484 18.146513 <NA> 32.811428 31.22825
> a2
ACTIN 18S TET1 TET2 TET3
Control 25.980696 22.393877 <NA> 34.548923 33.7815
Sample1 24.263775 20.073978 27.23082 32.27775 32.343292
Sample2 25.25487 19.680494 27.214449 33.70534 33.48968
Sample3 24.26332 18.108198 <NA> 32.769787 31.19895
> a3
ACTIN 18S TET1 TET2 TET3
Control 25.937397 22.429556 30.020935 33.98415 33.858604
Sample1 24.44776 20.090088 28.328804 32.317287 32.291912
Sample2 25.148333 19.537455 <NA> 33.83607 33.3961
Sample3 24.242998 18.335524 <NA> 32.788536 31.147346
我想用 3 个测量值的中位数创建一个新矩阵。
理想情况下,第一列保持不变。
如果没有值(未确定),则提供NA 是首选
我想要一个带有中位数的矩阵,所以是这样的:
median(a1[i,j], a2[i,j], a2[i,j])
我尝试了以下方法: 2 for 循环遍历数组:
med<-matrix(NA, nrow(a1), ncol(a1))
for(i in ncol(a1)){
for(j in nrow(a1)){
med[i,j]<-median(a1[i,j], a2[i,j], a2[i,j])
}
}
但这给我的值显然不是中位数,我觉得它过于复杂。
谢谢!
【问题讨论】: