我最终得到的行具有与已删除的列相对应的 NA,并且我想删除这些 NA。这会将下面的示例 df 从三行变为一行,并为每个组留下一组变量。
df <- data.frame(group = c("a", "a", "a"), var1 = c(1, NA, NA), var2 = c(NA, 4, NA), var3 = c(NA, NA,
2), var4 = c(1, NA, NA), var5 = c(NA, 4, NA), var6 = c(NA, NA, 2), var7 = c(1, NA, NA),
var8 = c(NA, 4, NA), var3 = c(NA, NA, 2))
我知道如何删除带有 NA 的整行或带有 NA 的列,但不知道如何折叠它。
最佳答案
根据示例,可以使用 summarise_all
来完成,假设每个“组”的每一列只有一个非 NA 元素
library(dplyr)
df %>%
group_by(group) %>%
summarise_all(na.omit)
# A tibble: 1 x 10
# group var1 var2 var3 var4 var5 var6 var7 var8 var3.1
# <fct> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 a 1 4 2 1 4 2 1 4 2
关于r - 消除每组内的 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58547689/