【发布时间】:2020-08-25 05:33:52
【问题描述】:
我正在为 PCA 准备一个数据集,我的所有变量都是数字的,因此我可以计算所有变量的中位数。
我有两个分组变量。我需要计算组的中位数(比如第一组是 CATEGORIA=6 和 Dpto='A' 等等),然后用这个值代替上面有 NA 的单元格,我的代码是:
for (j in 10:46){
consolidado1<-consolidado%>%
group_by(CATEGORIA,Dpto,.add=T)%>%
mutate_at(vars(j),~ ifelse(is.na(.),median(consolidado[,j],na.rm=T), .))
}
但是它并没有替换任何东西,每当我尝试测试 j 的某些值时,例如:
consolidado1<-consolidado%>%
group_by(CATEGORIA,Dpto,.add=T)%>%
mutate_at(vars(11),~ ifelse(is.na(.),median(consolidado[,11],na.rm=T), .))
NA 不是用组中位数而是用整列的中位数代替。
这样做的正确方法是什么?如何正确提取组中位数?
【问题讨论】: