Почему медианное вменение не работает? - PullRequest
0 голосов
/ 10 июля 2020

Я разрабатываю 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))
    }

Проблема в том, что для первой части условия 'If' последнее изменение, которое заменяет значения NA по медиане не работает. НА всегда рядом. Если я заменю медианное значение числовым значением c, оно будет работать. Однако для второй части «Если» он всегда работает. Вы замечаете что-нибудь неправильное? Заранее спасибо

1 Ответ

0 голосов
/ 10 июля 2020

Спасибо, ребята. Нет времени терять зря. поэтому я просто вместо использования мутации использовал прямое вменение.

     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)
}
...