排列降序并选择R中的前3个

时间:2019-02-27 08:38:45

标签: r dplyr

数据:

d2

# A tibble: 5 x 2
  Dist      n
  <chr> <int>
1 003     194
2 011     180
3 013     157
4 017     279
5 026     208

根据以上数据“ d2”,我想对列“ n”的值按降序排列。还需要前2个值。

我在使用时

arrange(desc(d2$n))

显示错误:

Error in UseMethod("arrange_") : 
  no applicable method for 'arrange_' applied to an object of class "c('integer', 'numeric')"

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

由于您未提供数据,因此以下是一些随机数据的解决方案:

d2 <- tibble(m = runif(5)*10, n = rnorm(5)) 

d2 %>%
  arrange(desc(n)) %>%
  slice(1:3)

或者,您可以使用top_n函数:

d2 %>% top_n(3, n)

这两种方法的区别在于top_n不对结果进行排序。