【发布时间】:2020-05-16 06:32:21
【问题描述】:
我正在执行一个 map_df 函数,该函数会产生一个类似于下面的 df 的数据帧。
name <- c('foo', 'foo', 'foo', 'bar', 'bar', 'bar')
year <- c(19, 19, 19, 18, 18, 18)
A <- c(1, NA, NA, 2, NA, NA)
B <- c(NA, 3, NA, NA, 4, NA)
C <- c(NA, NA, 2, NA, NA, 5)
df <- data.frame(name, year, A, B, C)
name year A B C
1 foo 19 1 NA NA
2 foo 19 NA 3 NA
3 foo 19 NA NA 2
4 bar 18 2 NA NA
5 bar 18 NA 4 NA
6 bar 18 NA NA 5
基于我在 df 中的唯一组,在这种情况下:名称 + 年份,我想将数据合并到同一行中。期望的结果:
name year A B C
1 foo 19 1 3 2
2 bar 18 2 4 5
我绝对可以通过混合过滤和连接来完成此操作,但是使用我的实际数据框会产生大量代码且效率低下。 我正在寻找一种更优雅的方式来“压缩”这个数据框。
【问题讨论】:
标签: r