【发布时间】:2019-06-14 08:05:44
【问题描述】:
我的数据如下所示:
df=data.frame(a=1:6,b=rep(c("one","two"),each=3))
df[2,2]<-NA
我想计算每一行的每组的平均值,如下所示:
df %>% group_by(b) %>% mutate(mean=mean(a))
问题在于 R 将 NA 视为一个组。期望的输出是
平均=c(2,NA,2,5,5,5)。
尝试:
df %>% group_by(b) %>% mutate(mean=if_else(b==NA,NA,mean(a)))
但这会引发错误
【问题讨论】:
-
您不能使用
==测试NA值,因为NAs 会传播。1==NA是NA!使用is.na。 -
啊,是的,对不起!没找到……有点不知道要搜索什么=)