Подведите итоги и NA - PullRequest
       5

Подведите итоги и NA

1 голос
/ 18 апреля 2020

Мой код сломался, и, похоже, это из-за NA и подведения итогов. Я объединил два фрейма данных, и из-за различий во времени появятся NA.

Мое присоединение:

data <- dplyr::right_join(ny.t, c.p, by=c("Date", "State"))

Мой код:

top.5 <- data %>% group_by(State) %>% summarize(Infected = max(Deaths) + max(Positive)) %>%
arrange(desc(Infected)) %>% top_n(5) 

Как исправить?

1 Ответ

1 голос
/ 18 апреля 2020

Мы могли бы создать условие, чтобы if all имели значения NA в deaths, возвращали 0 или возвращали max значение

library(dplyr)
data %>%
    group_by(state) %>% 
    summarise(max_deaths = if(all(is.na(deaths))) 0 else max(deaths, na.rm = TRUE),
              max_positive = if(all(is.na(positive))) 0 else max(positive, na.rm = TRUE),
             max_negative =  if(all(is.na(negative))) 0 else max(positive, na.rm = TRUE))

Или использовали summarise_at

data %>%
    group_by(state) %>%
    summarise_at(vars(deaths, positive, negative),
       ~ if(all(is.na(.))) 0 else max(., na.rm = TRUE))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...