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

在R中实现按Column B数值生成连续行并填充表格的方法

R语言实现表格行扩展的方法

首先构造与你提供的原表格一致的示例数据:

df <- data.frame(
  Column_A = c(100, 200, 300),
  Column_B = c(3, 4, 1)
)

方法1:Base R原生实现

无需额外安装包,直接用基础函数完成:

result_base <- data.frame(
  Column_A = rep(df$Column_A, df$Column_B),
  Column_B = sequence(df$Column_B)
)
  • rep(df$Column_A, df$Column_B):将每个Column_A的值重复对应Column_B的次数
  • sequence(df$Column_B):生成从1到每个Column_B数值的连续序列

方法2:dplyr + tidyr tidyverse风格实现

适合习惯tidyverse语法的用户,提供两种写法:

写法A:扩展行后生成组内序号

library(dplyr)
library(tidyr)

result_dplyr <- df %>%
  uncount(Column_B) %>%  # 按Column_B的数值扩展行
  group_by(Column_A) %>%
  mutate(Column_B = row_number()) %>%  # 生成每组内的连续序号
  ungroup()

写法B:按行直接展开序列

result_dplyr2 <- df %>%
  rowwise() %>%
  expand(Column_A, Column_B = 1:Column_B) %>%  # 每行生成1到Column_B的序列
  ungroup()

方法3:data.table高效实现

适合处理大数据量,语法简洁执行速度快:

library(data.table)
dt <- as.data.table(df)
result_dt <- dt[, .(Column_B = 1:Column_B), by = Column_A]
  • 通过by = Column_A分组,每组内直接生成1:Column_B的序列,自动拼接成最终结果表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:27:27