我想按唯一记录ID折叠重复的行,以便合并存在于这些重复的行上的唯一变量。某些变量仅在重复行的一个版本上列出,而其他唯一变量在重复记录的不同行上存在。我正在R中工作。我想只在一行上存在记录,而不会丢失任何唯一列。基本上是一个“总和”行,它收集了可能已填充到不同行上的每一列,因此最后一行不是重复的,并显示了可能已经填充在一起的每个变量... >
我研究了合并和绑定,并且考虑过编写If规则,但是复制方式因记录而异(请参见示例)。
git rm
所需的记录2的输出示例:
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
答案 0 :(得分:0)
以基数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。但是很容易将它们改回来。