我在r中有超过6000个观测值和96个变量的数据。
数据与个人组及其活动等有关。如果有组返回,则再次记录组ID号并进行新的观察。我需要按ID合并行,以使#个人的记录数最高,但是活动等是两种观察结果的组合。
数据包含#个人,活动,影响,到达时间等。问题在于,某些观测值分为两行,因此可能在另一行中记录了同一组的活动。两种观察的组ID相同,但其中一个可能记录了#个个体并记录了一些活动记录或影响,但第二个观察可能不完整,只有组ID和影响(除了第一个记录中的影响) )。小组中的个人#永远不会改变,因此我需要某种方式将它们组合在一起,以使活动具有累加性,但#visitors具有最高的价值,需要最早记录到达时间,并且需要将出发时间记录为2个观察结果中的较晚者。
有谁知道如何根据组ID合并观察值,但如何根据变量更改合并协议。
我不确定这是否真的是您想要的,但是要基于多个条件组合数据帧的行,可以使用该dplyr
包及其summarise()
功能。我生成了一些数据以直接在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 =", "))
希望这可以帮助!
这正是我想要的,并且非常适合我的数据。我真的很感谢您的帮助。
很高兴我能帮助你!如果您对答案满意,可以接受吗?谢谢!
抱歉,这是我问过的第一个问题,所以我没有意识到我必须接受答案。现在接受了。