首页 > 解决方案 > 降序排列并选择R中的前3个

问题描述

数据:

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')"

谁能帮我?

标签: rdplyr

解决方案


由于您没有提供数据,这里是一些随机数据的解决方案:

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不对结果进行排序。


推荐阅读