R 合并具有相同ID但具有重叠变量的行

R 合并具有相同ID但具有重叠变量的行,r,merge,grouping,reduce,R,Merge,Grouping,Reduce,我在r有超过6000个观测值和96个变量的数据 这些数据与个人群体及其活动等有关。如果一个群体返回了群体ID号,则再次记录该群体ID号,并进行新的观察。我需要按ID合并行,以便#个个体的数量取记录的最高值,但活动等是两个观察值的组合 数据包括个人、活动、影响、到达时间等。问题是,一些观察结果被分为两行,因此可能在另一行中记录了同一组的活动。两个观察结果的组ID相同,但其中一个可能记录了个人的#和一些活动记录或影响,但第二个可能不完整,只有组ID和影响(这是第一个记录中的附加)。团队中个人的#永远

我在r有超过6000个观测值和96个变量的数据

这些数据与个人群体及其活动等有关。如果一个群体返回了群体ID号,则再次记录该群体ID号,并进行新的观察。我需要按ID合并行,以便#个个体的数量取记录的最高值,但活动等是两个观察值的组合

数据包括个人、活动、影响、到达时间等。问题是,一些观察结果被分为两行,因此可能在另一行中记录了同一组的活动。两个观察结果的组ID相同,但其中一个可能记录了个人的#和一些活动记录或影响,但第二个可能不完整,只有组ID和影响(这是第一个记录中的附加)。团队中个人的#永远不会改变,因此我需要某种方式将他们组合起来,以便活动是累加的,但是#访客的价值最高,到达时间需要记录得最早,出发时间需要记录在两次观察中较晚的时间

是否有人知道如何根据组ID合并观察结果,但根据变量更改合并协议


我不确定这是否真的是您想要的,但是要基于多种条件组合数据帧的行,您可以使用
dplyr
包及其
summary()
函数。我生成了一些直接在R中使用的数据,您必须根据需要修改代码

# generate data
ID<-rep(1:20,2)
visitors<-sample(1:50, 40, replace=TRUE)
impact<-sample(rep(c("a", "b", "c", "d", "e"), 8))
arrival<-sample(rep(8:15, 5))
departure <- sample(rep(16:23, 5))

df<-data.frame(ID, visitors, impact, arrival, departure)
df$impact<-as.character(df$impact)

# summarise rows with identical ID
df_summary <- df %>%
  group_by(ID) %>%
  summarise(visitors = max(visitors), arrival = min(arrival), 
            departure = max(departure), impact = paste0(impact, collapse =", "))
#生成数据

这正是我想要的,并且对我的数据非常有效。我真的非常感谢你的帮助。很高兴我能帮上忙!如果你满意的话,你能接受这个答案吗?谢谢对不起,这是我问过的第一个问题,所以我没有意识到我必须接受答案。现在这是可以接受的。