首页 > 解决方案 > 如果数据行具有相同的 ID,则通过对值求和来压缩数据行

问题描述

当 AS 400 生成计划时,我的数据通常看起来像什么

 df <- data.frame(
   Date = c(rep("Dec 4", 10)),
   Line = c(rep(1,7),rep(2,3)),
   Style = c(rep(24510,7),rep(18605,3)),
   Qty = c(1,1,3,1,2,1,1,2,1,3))  

这就是我希望我的数据看起来的样子。如果您注意到,样式编号为 24510 的行没有被压缩为一行,数量为 10。之前有 7 个不同数量的单独行。

 df_goal <- data.frame(
   Date_goal = c(rep("Dec 4", 2)),
   Line_goal = c(1,2), 
   Style_goal = c(24510,18605),
   Qty_goal = c(10,6))  

标签: r

解决方案


很容易dplyr

library(dplyr)

df_goal<-df %>% 
            group_by(Date,Line, Style ) %>% 
            summarize(Qty=sum(Qty)) %>%
            rename(Date_Goal =Date, Line_Goal=Line, Style_Goal=Style, Qty_Goal= Qty)

推荐阅读