top_n()
已被取代slice_min()
/slice_max()
。虽然它不会在不久的将来被弃用,但退役意味着我们只会执行关键的错误修复,因此我们建议转向更新的替代方案。
top_n()
已被取代,因为该名称从根本上令人困惑,因为它返回您可能合理地认为是底部行的内容。此外,wt
变量的名称令人困惑,默认值也很奇怪( DataFrame 中的最后一列)。不幸的是,我们找不到一种简单的方法来修复现有的 top_n()
函数而不破坏现有代码,因此我们创建了一个新的替代方案。
参数
- 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 dplyr group_trim 修剪分组结构
- R dplyr slice 使用行的位置对行进行子集化
- R dplyr copy_to 将本地数据帧复制到远程src
- R dplyr sample_n 从表中采样 n 行
- R dplyr consecutive_id 为连续组合生成唯一标识符
- R dplyr row_number 整数排名函数
- R dplyr band_members 乐队成员
- R dplyr mutate-joins 变异连接
- R dplyr nth 从向量中提取第一个、最后一个或第 n 个值
- R dplyr coalesce 找到第一个非缺失元素
- R dplyr group_split 按组分割 DataFrame
- R dplyr mutate 创建、修改和删除列
- R dplyr order_by 用于排序窗口函数输出的辅助函数
- R dplyr context 有关“当前”组或变量的信息
- R dplyr percent_rank 比例排名函数
- R dplyr recode 重新编码值
- R dplyr starwars 星球大战人物
- R dplyr desc 降序
- R dplyr between 检测值落在指定范围内的位置
- R dplyr cumall 任何、全部和平均值的累积版本
- R dplyr group_map 对每个组应用一个函数
- R dplyr do 做任何事情
- R dplyr nest_join 嵌套连接
- R dplyr pull 提取单列
- R dplyr group_by_all 按选择的变量进行分组
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Select top (or bottom) n rows (by value)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。