R数据框按行求和后首列值按行总和重复的转换方法咨询
R Dataframe 转换实现方案
方案1:tidyverse 实现(可读性高,适合新手)
依赖dplyr和tidyr包,逻辑清晰易懂:
# 加载依赖包 library(dplyr) library(tidyr) # 替换df为你的实际数据框名称 output_df <- df %>% # 若你的数据没有提前计算好Sum列,可取消注释下行自行计算(排除首列X1的行求和) # mutate(Sum = rowSums(select(., -X1))) %>% # 按Sum值的次数重复对应行 uncount(weights = Sum) %>% # 仅保留需要的首列结果 select(X1)
方案2:Base R 实现(无需额外安装包)
用原生函数即可快速实现:
# 替换df为你的实际数据框名称 output_df <- data.frame( X1 = rep(x = df$X1, times = df$Sum) )
结果说明
运行后得到的output_df为单列数据,结构和提供的期望输出完全一致:10重复16次、20重复1次、30重复1次、40重复9次,共27行。
内容的提问来源于stack exchange,提问作者RforBegginer
相关产品推荐
相关产品推荐

