如何为分组后的DataFrame添加组内行号?
需求说明
用户希望生成一个row变量,实现:
- id为
soo1的行对应的row依次为1、2 - id为
soo2的行对应的row依次为1、2 - id为
soo3的行对应的row为1
用户尝试的代码如下:
library(dplyr) data1 <- tibble( "id" = c("soo1", "soo1", "soo2", "soo2", "soo3"), "amount" = c(100, 21, 23, 23, 45) ) |> group_by(id) |> mutate(row = row_number())
解答
你写的代码已经完全符合需求。运行这段代码后,data1的结果如下:
# A tibble: 5 × 3 # Groups: id [3] id amount row <chr> <dbl> <int> 1 soo1 100 1 2 soo1 21 2 3 soo2 23 1 4 soo2 23 2 5 soo3 45 1
代码逻辑说明
group_by(id):按id字段对数据分组,让后续操作在每个分组内独立执行mutate(row = row_number()):在每个分组内生成从1开始递增的行号,刚好匹配你对row变量的要求
内容的提问来源于stack exchange,提问作者Moses
相关产品推荐
相关产品推荐

