r-为什么中值插补不起作用



我正在开发一个ShinyApp,在某个地方我使用了这样的条件:

if(AggActive){
tbl = tbl %>% 
spread(key = "Agg_BoxType",value = "Supply_Counts",fill = 0) %>% 
left_join(dgs10, by = c("Day"="Date")) %>% 
mutate(DGS10 = ifelse(is.na(DGS10),median(DGS10,na.rm = T),DGS10))
}else{
tbl = tbl %>%
mutate(Key = paste(Channel,Box_Type,sep = "_")) %>%
select(Day, Key,Supply_Counts) %>%
spread(key = "Key",value = "Supply_Counts",fill = 0) %>%
left_join(dgs10, by = c("Day"="Date")) %>%
mutate(DGS10 = ifelse(is.na(DGS10),median(DGS10,na.rm = T),DGS10))
}

问题是,对于"如果"条件的第一部分,用中值替换NA值的最后一个突变不起作用。NAs总是在那里。如果我用一个数值代替中值,它就可以了。然而,对于"如果"的第二部分,它总是有效的。你有什么不对的地方吗?提前感谢

谢谢大家。没有时间可以浪费了。所以我没有使用突变,而是使用了一个直接的插补。

if(AggActive){
tbl = tbl %>% 
spread(key = "Agg_BoxType",value = "Supply_Counts",fill = 0) %>% 
left_join(dgs10, by = c("Day"="Date"))
tbl$DGS10[is.na(tbl$DGS10)] <- mean(tbl$DGS10,na.rm = TRUE) 
}else{
tbl = tbl %>%
mutate(Key = paste(Channel,Box_Type,sep = "_")) %>%
select(Day, Key,Supply_Counts) %>%
spread(key = "Key",value = "Supply_Counts",fill = 0) %>%
left_join(dgs10, by = c("Day"="Date"))
tbl$DGS10[is.na(tbl$DGS10)] <- mean(tbl$DGS10,na.rm = TRUE)
}

最新更新