假设我在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
问题是我只能在一个缓慢的循环中执行此操作。我可以在矢量函数中得到如此复杂的操作吗?
答案 0 :(得分:4)
不知道速度有多大提升,但来自rollapply()
的{{1}}是一种选择。
zoo