R语言如何为数据框按每6行一组分配统一分组ID
R语言实现每6行分组递增ID的方案
你已经在使用dplyr的前提下,可以直接用row_number()配合向上取整函数ceiling()实现需求,代码如下:
library(dplyr) Lines <- Lines %>% mutate(id = ceiling(row_number() / 6))
原理解释
row_number()会按数据当前的行顺序生成从1开始的连续整数行号- 行号除以6之后用
ceiling()做向上取整:16除以6的结果向上取整均为1,712除以6的结果向上取整均为2,后续以此类推,完全符合你要求的ID赋值规则
如果你习惯用基础R实现,也可以直接写:
Lines$id <- ceiling(seq(nrow(Lines)) / 6)
运行后可以用head(Lines, 12)查看前12行的结果,验证ID赋值是否符合预期。
内容的提问来源于stack exchange,提问作者stats_noob
相关产品推荐
相关产品推荐

