我有两个数据帧,第一个(dat
)有两列group
和value
。第二数据帧(dat2
)具有每个group
的平均值。如何用dat
中找到的组的平均值替换dat2
中的NA值?
library(dplyr)
x <- as.data.frame(seq(from = 1, to = 10, by = 1))
names(x)[1] <- "value"
y <- as.data.frame(c("A","A","A","A","A","B","B","B","B","B"),1)
names(y)[1] <- "group"
dat <- cbind(y,x)
dat[dat == 3] <- NA
dat[dat == 7] <- NA
dat2 <- dat %>%
group_by(group) %>%
summarise_at(.vars = names(.)[2],.funs = c(mean="mean"),na.rm=TRUE)
怎么样?
library(dplyr)
x <- as.data.frame(seq(from = 1, to = 10, by = 1))
names(x)[1] <- "value"
y <- as.data.frame(c("A","A","A","A","A","B","B","B","B","B"),1)
names(y)[1] <- "group"
dat <- cbind(y,x)
dat[dat == 3] <- NA
dat[dat == 7] <- NA
dat %>%
group_by(group) %>%
mutate(
value = ifelse(is.na(value), mean(value, na.rm = T), value)
) %>%
ungroup()