按键合并一年与r中的多列合并
我有以下数据集:
df1 <- data.frame(
"key" = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3),
"year" = c(2002, 2002, 2004, 2004, 2002, 2002, 2004, 2004, 2004, 2004),
"Var1" = c(10, NA, 5, 5, 4, NA, NA, 3, 2, 2),
"Var2" = c(1, 1, 3, 3, 2, NA, 3, NA, 1, NA),
"Var3" = c(NA, 2, NA, NA, 5, 5, 3, NA, 2, NA),
"Var4" = c(NA, 4, 5, 5, 6, NA, 4, NA, NA, NA))
我现在想按键和年将重复行合并,以使一个看起来如下的数据集:
df2 <- data.frame(
"key" = c(1, 1, 2, 2, 3),
"year" = c(2002, 2004, 2002, 2004, 2004),
"Var1" = c(10, 5, 4, 3, 2),
"Var2" = c(1, 3, 2, 3, 1),
"Var3" = c(2, NA, 5, 3, 2),
"Var4" = c(4, 5, 6, 4, NA))
问题是我有30多列,数百至数千行。因此,该解决方案似乎有点不合时宜:。 感谢任何帮助!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以
group_by(键,年)
,并获取每列的最大值,不包括NAS和只有NAS的组:You can
group_by(key, year)
and get the maximum value for each column, excluding NAs and groups with only NAs:您可以使用
fill()
填充每个组的缺失值,并使用dimption()
找到唯一的行。You can fill in missing values by each group with
fill()
and find unique rows withdistinct()
.