R中三维数据对应系数的计算平均值
我在R中有以下输出:R中三维数据对应系数的计算平均值,r,R,我在R中有以下输出: > out , , 1 Estimate Std. Error z value Pr(>|z|) (Intercept) -0.8968692 0.1995274 -4.494968 6.958036e-06 X 0.5803202 0.2190155 2.649676 8.056901e-03 Z 0.2535625 0.2232445 1.135806 2.560
> out
, , 1
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.8968692 0.1995274 -4.494968 6.958036e-06
X 0.5803202 0.2190155 2.649676 8.056901e-03
Z 0.2535625 0.2232445 1.135806 2.560376e-01
X:Z 0.3375088 0.2659863 1.268895 2.044784e-01
, , 2
Estimate Std. Error z value Pr(>|z|)
(Intercept) -0.8624345 0.1888867 -4.565884 4.973944e-06
X 0.2544430 0.1784808 1.425604 1.539826e-01
Z 0.4704287 0.2387451 1.970423 4.878996e-02
X:Z 0.4813516 0.2239360 2.149505 3.159440e-02
, , 3
Estimate Std. Error z value Pr(>|z|)
(Intercept) -1.0576301 0.1896436 -5.5769362 2.447916e-08
X 0.1515228 0.1917464 0.7902253 4.293962e-01
Z 0.1551839 0.2686790 0.5775810 5.635470e-01
X:Z 0.1673263 0.2872858 0.5824384 5.602714e-01
现在我想计算这三个重复中相应的估计系数的平均值。也就是说,对于截距,平均值为(-0.8968692-0.8624345-1.0576301)/3=-0.9389779
所以我试着:
> out[1,,]
[,1] [,2] [,3]
Estimate -8.968692e-01 -8.624345e-01 -1.057630e+00
Std. Error 1.995274e-01 1.888867e-01 1.896436e-01
z value -4.494968e+00 -4.565884e+00 -5.576936e+00
Pr(>|z|) 6.958036e-06 4.973944e-06 2.447916e-08
mean(out[1,,])
[1] -1.406388
这是不正确的
然后我试着
mean(out[1,,])$estimates
Error in mean(out[1, , ])$estimates :
$ operator is invalid for atomic vectors
如何计算相应估计值的平均值?您可以使用
应用。这里有一个可复制的例子
set.seed(357)
xy <- array(runif(27), dim = c(3, 3, 3))
xy
, , 1
[,1] [,2] [,3]
[1,] 0.10728121 0.2248621 0.9337365
[2,] 0.05504568 0.6534852 0.7474587
[3,] 0.27987766 0.4634314 0.7783997
, , 2
[,1] [,2] [,3]
[1,] 0.9913409 0.4601817 0.1716801
[2,] 0.6245529 0.2254525 0.3195294
[3,] 0.5245744 0.5898001 0.8953055
, , 3
[,1] [,2] [,3]
[1,] 0.6831485 0.45645455 0.7077218
[2,] 0.4317410 0.36626006 0.6886439
[3,] 0.1809770 0.04334935 0.3717553
mean(c(0.107, 0.991, 0.683))
[1] 0.5936667
apply(xy, MARGIN = 1:2, FUN = mean)
[,1] [,2] [,3]
[1,] 0.5939235 0.3804995 0.6043794
[2,] 0.3704465 0.4150659 0.5852107
[3,] 0.3284764 0.3655270 0.6818202
rowMeans(xy,dims=2)
@Roland这看起来非常有效。想计时吗?对不起,我现在得走了。今天有个节日要开始了,我得上路了。请随意对其进行基准测试。
t(apply(xy, 1, FUN=rowMeans))
# [,1] [,2] [,3]
#[1,] 0.5939235 0.3804995 0.6043794
#[2,] 0.3704465 0.4150659 0.5852107
#[3,] 0.3284764 0.3655270 0.6818202