R如何从最后的m值得到一个平均n个最大值的向量?

时间:2018-04-17 20:25:57

标签: r vectorization

假设我在R中有这个小数据集。

Data = c(8,2,9,7,8,8,9,8,4,9,9,7,2,5,2,2,1,9,9,7)

因此,我希望获得最后10个中的第2个和第3个最小值和最大值的平均值,其中10和等级的所有值都应该是可变的。

在Excel中,分钟的公式为=AVERAGE(SMALL(A11:A20,ROW(INDIRECT("2:4")))) 输入 Ctrl + Shift + 输入

预期结果是

val min    max
8   NA     NA
2   NA      NA
9   NA      NA
7   NA      NA
8   NA      NA
8   NA      NA
9   NA      NA
8   NA      NA
4   NA      NA
9   6.3333  8.6667
9   6.3333  9
7   7.3333  9
2   6       8.6667
5   5.3333  8.6667
2   3.6667  8.6667
2   2.6667  8.6666
1   2       8
9   2       8.3333
9   2       9
7   2       8.3333

在r中这似乎相当简单,我得到10或x值对值进行排序,然后对相应的3值进行平均或做任何操作,讨论here

问题是我只能在一个缓慢的循环中执行此操作。我可以在矢量函数中得到如此复杂的操作吗?

1 个答案:

答案 0 :(得分:4)

不知道速度有多大提升,但来自rollapply()的{​​{1}}是一种选择。

zoo