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
相关产品推荐
相关产品推荐

