我有一个向量,我可以返回最高和最低值,但是如何返回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. 计数变量的5个最高值
- 3. 从列表中返回最低值[R]
- 4. 返回值最高的变量?
- 5. R返回向量中的最大数量
- 6. 如何根据表列中的最高值从Mysql返回行?
- 7. Clojure中最高键值的返回值
- 8. 返回最高值的PHP
- 9. 如何从列中获得最高5个值?
- 10. 如何从散列表中获得5个最高值?
- 11. 如何从多维数组中返回最高值?
- 12. 确定向量中的最小值R
- 13. 返回最高值java
- 14. 返回从两个矢量中值r中
- 15. 如何从两个数值向量创建中的R
- 16. 仅返回MySQL中列的最高值
- 17. 从R中提取向量中的值
- 18. R - 从矩阵中获取向量中最大值的位置
- 19. SQL - 如何返回最高收入年份前5名?
- 20. Boost从多线程向量返回值
- 21. 返回最低的5个值和每个变量的ID在大的df在R
- 22. 向量中的最小值的返回索引?
- 23. VexCL:向量中的值的数量高于最小值
- 24. R中的函数可以返回两个向量吗?
- 25. 从具有最高值的数组中返回对象
- 26. 从具有最高值的数组列表中返回对象?
- 27. 返回从模型中查看的最高值
- 28. 如何在整数列中选择5个最高值?
- 29. 仅返回计数器的最高值
- 30. 如何返回矢量的最后三个值?
或'头(排序(一个,减少= 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