我有一个向量,我可以返回最高和最低值,但是如何返回5个最高值?有没有简单的单线解决方案?如何从R中的向量返回5个最高值?
20
A
回答
32
> a <- c(1:100)
> tail(sort(a),5)
[1] 96 97 98 99 100
2
是的,head(X, 5)
其中X
是您排序的向量。
12
x[order(x)[1:5]]
3
tail(sort.int(x, partial=length(x) - 4), 5)
与局部使用sort.int具有作为(可能)通过更快地(可能)不做了充分的排序的优点。但实际上,我的实现看起来有点慢。也许这是因为使用参数partial!= NULL,使用shell排序而不是快速排序?
> x <- 1:1e6
> system.time(replicate(100, tail(sort.int(x, partial=length(x) - 4), 5)))
user system elapsed
4.782 0.846 5.668
> system.time(replicate(100, tail(sort(x), 5)))
user system elapsed
3.643 0.879 4.854
+0
如果你改用x <-runif(1e6),你会看到好处。请注意,您返回的5个值确实是最高的5个值,但不一定按排序顺序排列。 – Tommy 2011-04-08 00:20:26
相关问题
- 1. R:如何在每一行中生成最高值的向量?
- 2. 从列表中返回最低值[R]
- 3. 返回值最高的变量?
- 4. R返回向量中的最大数量
- 5. Clojure中最高键值的返回值
- 6. 如何从列中获得最高5个值?
- 7. 如何从多维数组中返回最高值?
- 8. 返回最高值java
- 9. 如何从两个数值向量创建中的R
- 10. 仅返回MySQL中列的最高值
- 11. R - 从矩阵中获取向量中最大值的位置
- 12. 返回最低的5个值和每个变量的ID在大的df在R
- 13. 向量中的最小值的返回索引?
- 14. VexCL:向量中的值的数量高于最小值
- 15. R中的函数可以返回两个向量吗?
- 16. 返回从模型中查看的最高值
- 17. 如何在整数列中选择5个最高值?
- 18. 仅返回计数器的最高值
- 19. r向量中的rank值
- 20. 如何反向返回值?
- 21. 如何返回矢量的最后三个值?
- 22. 如何从R中的向量中取出最后n个元素?
- 23. 从列中选择最大数量不返回最大值
- 24. 获取静态的Java方法返回最高变量值
- 25. SPSS返回最高变量名称
- 26. 如何从R中的data.frame列中创建一个向量?
- 27. 如何让mysql返回最高牛顿值的行?
- 28. Aerospike查询返回最高值
- 29. 只返回最高价值记录
- 30. SQL:如何从多个记录中选择最高的PK返回
或'头(排序(一个,减少= TRUE),5)' – Marek 2010-09-11 21:35:07
尾稍快于头部和减小是= TRUE > X < - RNORM(50000000) > system.time(尾(排序(x)中,5)) 用户系统经过 22.64 0.25 22.95 > system.time(头(排序(X,减少= TRUE),5)) 用户系统经过 23.26 0.20 23.51 – Thierry 2010-09-11 22:28:40
@Thierry你应该多跑一次,平均时间。因为我认为根据我的模拟,没有区别(统计上)。 – Marek 2010-09-13 08:06:33