You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R语言中为非均匀数据集创建分组变量

在R中为数据集每10行生成分组变量

这里有几种简单实用的方法可以实现你要的分组效果:

方法1:基础R的ceiling()函数

这是最直观的实现方式,利用行号计算分组:

# 假设你的数据集名为df
df$y <- ceiling(seq(nrow(df)) / 10)

原理:seq(nrow(df))生成从1到数据集总行数的序列,除以10后,每10个连续行的结果落在同一个区间,ceiling()向上取整后就得到了对应的分组编号,最后不足10行的部分会自动归为最后一组(比如你示例里的31-33行就会被分到第4组)。

方法2:用gl()函数生成分组

R的基础函数gl()专门用于构造分组变量,也能轻松实现需求:

total_groups <- ceiling(nrow(df)/10)
df$y <- as.numeric(gl(n = total_groups, k = 10, length = nrow(df)))

参数说明:

  • n:指定总组数,通过ceiling(nrow(df)/10)计算得出
  • k:每组包含的行数,这里设为10
  • length:生成的分组变量总长度,匹配数据集的行数

方法3:tidyverse风格实现(dplyr包)

如果你习惯使用tidyverse工具链,用dplyr的mutate()结合行号函数也能快速搞定:

library(dplyr)

df <- df %>%
  mutate(y = ceiling(row_number() / 10))

以上三种方法都能完美匹配你给出的示例效果,你可以根据自己的代码习惯选择使用。

内容的提问来源于stack exchange,提问作者Martyna F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:15:33