是否有 R 函数可以在合并这些重复行中的唯一列时折叠重复行?
is there an R function to collapse duplicated rows while combining unique columns within these duplicated rows?
我想通过唯一记录 ID 折叠重复的行,以便合并存在于这些重复行上的唯一变量。某些变量仅列在重复行的一个版本中,而其他唯一变量则存在于重复记录的不同行中。我在 R 中工作。我只想让记录存在于一行中,而不会丢失任何唯一列。一个 "sum-total" 行基本上收集了可能已填充在不同行上的每一列,因此最后一行不是重复的,并显示了可能已一起填充的每个变量...
我研究了合并和绑定,我考虑过编写一个 If 规则,但重复因记录而异(参见示例)。
record Var1 var2 var3 var4 var5
2 1 1 NA NA NA
2 NA NA 1 1 1
3 2 2 NA NA NA
3 NA NA 2 NA NA
3 NA NA NA 2 2
4 1 1 NA NA NA
5 NA NA 1 1 1
5 NA 2 NA NA NA
记录 2 的期望输出示例:
record Var1 var2 var3 var4 var5
2 1 1 1 1 1
3 ....
以 R 为基数 aggregate
:
aggregate(df[2:ncol(df)], by = df["record"], sum, na.rm = T)
#### OUTPUT ####
record Var1 var2 var3 var4 var5
1 2 1 1 1 1 1
2 3 2 2 2 2 2
3 4 1 1 0 0 0
4 5 0 2 1 1 1
使用 dplyr:
library(dplyr)
df %>% group_by(record) %>% summarize_all(sum, na.rm = T)
#### OUTPUT ####
# A tibble: 4 x 6
record Var1 var2 var3 var4 var5
<int> <int> <int> <int> <int> <int>
1 2 1 1 1 1 1
2 3 2 2 2 2 2
3 4 1 1 0 0 0
4 5 0 2 1 1 1
唯一的问题是NA
变成了0。但是很容易改回来。
我想通过唯一记录 ID 折叠重复的行,以便合并存在于这些重复行上的唯一变量。某些变量仅列在重复行的一个版本中,而其他唯一变量则存在于重复记录的不同行中。我在 R 中工作。我只想让记录存在于一行中,而不会丢失任何唯一列。一个 "sum-total" 行基本上收集了可能已填充在不同行上的每一列,因此最后一行不是重复的,并显示了可能已一起填充的每个变量...
我研究了合并和绑定,我考虑过编写一个 If 规则,但重复因记录而异(参见示例)。
record Var1 var2 var3 var4 var5
2 1 1 NA NA NA
2 NA NA 1 1 1
3 2 2 NA NA NA
3 NA NA 2 NA NA
3 NA NA NA 2 2
4 1 1 NA NA NA
5 NA NA 1 1 1
5 NA 2 NA NA NA
记录 2 的期望输出示例:
record Var1 var2 var3 var4 var5
2 1 1 1 1 1
3 ....
以 R 为基数 aggregate
:
aggregate(df[2:ncol(df)], by = df["record"], sum, na.rm = T)
#### OUTPUT ####
record Var1 var2 var3 var4 var5
1 2 1 1 1 1 1
2 3 2 2 2 2 2
3 4 1 1 0 0 0
4 5 0 2 1 1 1
使用 dplyr:
library(dplyr)
df %>% group_by(record) %>% summarize_all(sum, na.rm = T)
#### OUTPUT ####
# A tibble: 4 x 6
record Var1 var2 var3 var4 var5
<int> <int> <int> <int> <int> <int>
1 2 1 1 1 1 1
2 3 2 2 2 2 2
3 4 1 1 0 0 0
4 5 0 2 1 1 1
唯一的问题是NA
变成了0。但是很容易改回来。