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

R语言新手求助:如何将列值转换为对应行数的重复行

解决R语言数据框按列值重复行并统一列值的问题

你的需求是根据每行Number的值重复该行,同时把重复后的Number列统一设为1。原代码的问题在于uncount(Number)默认会移除用于计数的Number列,且没处理重复后的列值,所以达不到预期效果。

正确解法1(dplyr的uncount+mutate组合)

先保留原Number列再执行重复操作,之后将列值统一改为1:

library(dplyr)

data %>%
  ungroup() %>%
  uncount(Number, .keep = TRUE) %>%  # .keep=TRUE参数保留Number列
  mutate(Number = 1)

正确解法2(slice+rep实现行重复)

通过行号重复的方式生成目标行数,再修改列值:

library(dplyr)

data %>%
  slice(rep(row_number(), Number)) %>%  # 按Number值重复对应行
  mutate(Number = 1)

运行任意一种方法,都会得到你想要的结果:

Month Number
1   March      1
2 February      1
3 February      1
4 February      1
5 February      1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 17:44:53