计算R中部分数据的平均值

时间:2014-06-04 17:25:23

标签: r

我对数据进行了排序。我需要计算最低20%的样本数据的平均值。如何在R中编写命令?

x<- matrix (1:10, ncol = 2)

      [,1] [,2]
[1,]    1    6
[2,]    2    7
[3,]    3    8
[4,]    4    9
[5,]    5   10

我尝试过以下方法: -

 es<- mean(head(x, .2 * nrow(x)))

但答案是错误的。它给出了(1 + 6)/ 2的平均值。我希望它能找到每列中最低2个数据的平均值。它应该给我答案;

[,1] [,2]
 1.5  6.5

由于

1 个答案:

答案 0 :(得分:0)

> apply(x, 2, function(z) mean(z[order(z)][1:2]) )
[1] 1.5 6.5

查看?apply关于矩阵或数据帧的全数字或全字符子集的逐行或逐列操作。

这实际上是最低40%的值,因为2/5 = 0.4。如果你想要这是敏感的&#34;不同的长度(仍然要求40%而不是20%)你会做类似的事情:

> apply(x, 2, function(z) mean(z[order(z)][1:(length(z)*.4)]) )
[1] 1.5 6.5