consecutive_id()
生成一个唯一标识符,每次变量(或变量组合)更改时该标识符都会递增。受到data.table::rleid()
的启发。
例子
consecutive_id(c(TRUE, TRUE, FALSE, FALSE, TRUE, FALSE, NA, NA))
#> [1] 1 1 2 2 3 4 5 5
consecutive_id(c(1, 1, 1, 2, 1, 1, 2, 2))
#> [1] 1 1 1 2 3 3 4 4
df <- data.frame(x = c(0, 0, 1, 0), y = c(2, 2, 2, 2))
df %>% group_by(x, y) %>% summarise(n = n())
#> `summarise()` has grouped output by 'x'. You can override using the
#> `.groups` argument.
#> # A tibble: 2 × 3
#> # Groups: x [2]
#> x y n
#> <dbl> <dbl> <int>
#> 1 0 2 3
#> 2 1 2 1
df %>% group_by(id = consecutive_id(x, y), x, y) %>% summarise(n = n())
#> `summarise()` has grouped output by 'id', 'x'. You can override using the
#> `.groups` argument.
#> # A tibble: 3 × 4
#> # Groups: id, x [3]
#> id x y n
#> <int> <dbl> <dbl> <int>
#> 1 1 0 2 2
#> 2 2 1 2 1
#> 3 3 0 2 1
相关用法
- R dplyr context 有关“当前”组或变量的信息
- R dplyr copy_to 将本地数据帧复制到远程src
- R dplyr coalesce 找到第一个非缺失元素
- R dplyr compute 强制计算数据库查询
- R dplyr count 计算每组中的观察结果
- R dplyr cumall 任何、全部和平均值的累积版本
- R dplyr case_match 通用向量化 switch()
- R dplyr c_across 合并多列的值
- R dplyr cross_join 交叉连接
- R dplyr case_when 通用向量化 if-else
- R dplyr group_trim 修剪分组结构
- R dplyr slice 使用行的位置对行进行子集化
- R dplyr sample_n 从表中采样 n 行
- R dplyr row_number 整数排名函数
- R dplyr band_members 乐队成员
- R dplyr mutate-joins 变异连接
- R dplyr nth 从向量中提取第一个、最后一个或第 n 个值
- R dplyr group_split 按组分割 DataFrame
- R dplyr mutate 创建、修改和删除列
- R dplyr order_by 用于排序窗口函数输出的辅助函数
- R dplyr percent_rank 比例排名函数
- R dplyr recode 重新编码值
- R dplyr starwars 星球大战人物
- R dplyr desc 降序
- R dplyr between 检测值落在指定范围内的位置
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Generate a unique identifier for consecutive combinations。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。