【发布时间】:2019-02-03 04:58:18
【问题描述】:
假数据
fruit <- c("Orange", "Banana", "Orange", "Banana")
flavour <- c("Bitter", NA, NA, "Sweet")
geo <- c(NA, NA, NA, "France")
value <- c(1, NA, NA, 4)
dd <- data.frame(fruit, flavour, geo, value)
rm(fruit, flavour, geo, value)
我想按“水果”对数据集进行分组并替换缺失值 在分组数据中存在值的所有变量中。
期望的输出
fruit <- c("Orange", "Banana", "Orange", "Banana")
flavour <- c("Bitter", "Sweet", "Bitter", "Sweet")
geo <- c(NA, "France", NA, "France")
value <- c(1, 4, 1, 4)
dd2 <- data.frame(fruit, flavour, geo, value)
rm(fruit, flavour, geo, value)
代码尝试
tt <- dd %>%
group_by(fruit) %>%
summarise_all()
【问题讨论】:
-
基本 R 选项:
dd$flavour <- with(dd, ave(flavour, fruit, FUN = function(x) x[!is.na(x)])). -
如果一个组中有多个非NA值,你想做什么?
-
这不太可能发生在我的数据中。但是,如果变量是数字,我想做平均,如果它是字符,我理想地连接可能的值。感谢 cmets。