当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R dplyr top_n 选择顶部(或底部)n 行(按值)


[Superseded] top_n()已被取代slice_min()/slice_max()。虽然它不会在不久的将来被弃用,但退役意味着我们只会执行关键的错误修复,因此我们建议转向更新的替代方案。

top_n() 已被取代,因为该名称从根本上令人困惑,因为它返回您可能合理地认为是底部行的内容。此外,wt 变量的名称令人困惑,默认值也很奇怪( DataFrame 中的最后一列)。不幸的是,我们找不到一种简单的方法来修复现有的 top_n() 函数而不破坏现有代码,因此我们创建了一个新的替代方案。

用法

top_n(x, n, wt)

top_frac(x, n, wt)

参数

x

一个 DataFrame 。

n

top_n() 返回的行数,top_frac() 返回的行数。如果 n 为正,则选择顶部行。如果为负,则选择底部行。如果 x 已分组,则这是每组的行数(或分数)。如果存在平局,将包含更多行。

wt

(可选的)。用于排序的变量。如果未指定,则默认为表中的最后一个变量。

例子

df <- data.frame(x = c(6, 4, 1, 10, 3, 1, 1))

df %>% top_n(2)  # highest values
#> Selecting by x
#>    x
#> 1  6
#> 2 10
df %>% top_n(-2) # lowest values
#> Selecting by x
#>   x
#> 1 1
#> 2 1
#> 3 1
# now use
df %>% slice_max(x, n = 2)
#>    x
#> 1 10
#> 2  6
df %>% slice_min(x, n = 2)
#>   x
#> 1 1
#> 2 1
#> 3 1

# top_frac() -> prop argument of slice_min()/slice_max()
df %>% top_frac(.5)
#> Selecting by x
#>    x
#> 1  6
#> 2  4
#> 3 10
# ->
df %>% slice_max(x, prop = 0.5)
#>    x
#> 1 10
#> 2  6
#> 3  4
源代码:R/top-n.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Select top (or bottom) n rows (by value)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。