R语言:如何对向量进行排序并在值平坦时打印Top X值?
如果我有像这样的向量
v <- c(1,2,3,3,4,5)
我要打印TOP1〜TOP3值。
所以我用:
sort(v)[1:3]
[1] 1 2 3
在这种情况下,TOP3具有2个值
我要打印的是:
[1] 1 2 3 3
及其索引
答案 0 :(得分:3)
一种方法:
v[v %in% sort(v)[1:3]]
# [1] 1 2 3 3
# following up OP's comment, if you want ordered outcomes:
# sort(v[v %in% sort(v)[1:3]])
答案 1 :(得分:2)
我们可以使用top_n
中的dplyr
library(dplyr)
data.frame(v) %>% top_n(-3)
# v
#1 1
#2 2
#3 3
#4 3
如果您想要向量pull
,则返回一个数据帧
data.frame(v) %>% top_n(-3) %>% pull(v)
#[1] 1 2 3 3