值是平坦的时,如何排序向量并打印Top X值?

时间:2018-11-30 07:06:06

标签: r

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

及其索引

2 个答案:

答案 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