合并具有相同 ID 但具有重叠变量的行
Merge rows with the same ID but with overlapping variables
我在 r 中有超过 6000 个观察值和 96 个变量的数据。
数据与个人群体及其活动等有关。如果一个群体返回,则再次记录群体 ID 号并进行新的观察。我需要按 ID 合并行,以便个体的数量获得记录的最高数量,但活动等是两个观察结果的组合。
数据包含 #of individuals、活动、影响、到达时间等。问题是一些观察结果被分成了 2 行,因此可能存在在另一行中为同一组记录的活动线。两个观察的组 ID 相同,但一个可能记录了 #of individuals 和一些 activity 记录或影响,但第二个可能不完整,只有组 ID,然后是影响(这是对那些的附加在第一个记录中)。 #of individuals in the group 永远不会改变,所以我需要一些方法来组合它们,以便活动是累加的,但是#visitors 取最高的值,到达时间需要是最早记录的,离开时间需要是2 个观察结果中的较晚者。
有谁知道如何根据组 ID 合并观察结果但根据变量改变合并协议。
enter image description here
我不确定这是否真的是您想要的,但是要根据多种条件组合数据框的行,您可以使用 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 =", "))
希望对您有所帮助!
我在 r 中有超过 6000 个观察值和 96 个变量的数据。
数据与个人群体及其活动等有关。如果一个群体返回,则再次记录群体 ID 号并进行新的观察。我需要按 ID 合并行,以便个体的数量获得记录的最高数量,但活动等是两个观察结果的组合。
数据包含 #of individuals、活动、影响、到达时间等。问题是一些观察结果被分成了 2 行,因此可能存在在另一行中为同一组记录的活动线。两个观察的组 ID 相同,但一个可能记录了 #of individuals 和一些 activity 记录或影响,但第二个可能不完整,只有组 ID,然后是影响(这是对那些的附加在第一个记录中)。 #of individuals in the group 永远不会改变,所以我需要一些方法来组合它们,以便活动是累加的,但是#visitors 取最高的值,到达时间需要是最早记录的,离开时间需要是2 个观察结果中的较晚者。
有谁知道如何根据组 ID 合并观察结果但根据变量改变合并协议。
enter image description here
我不确定这是否真的是您想要的,但是要根据多种条件组合数据框的行,您可以使用 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 =", "))
希望对您有所帮助!