#r #dplyr
Вопрос:
У меня большой набор данных , и я пытаюсь создавать переменные с dplyr
помощью, а примеры данных приведены ниже
sample2 = data.frame(fips = c(1001,1009), week_state_rest_close_begin = c(12, 12), week_state_rest_close_end = c(20, 20), week_local_rest_close_begin = c(NA, 12), week_local_rest_close_end = c(NA, NA)) %gt;% as_tibble()
с помощью данных я пытаюсь создать week_rest_cl_begin
и week_rest_cl_end
, как показано ниже
sample2 %gt;% mutate(week_rest_cl_begin = ifelse(!is.na(week_state_rest_close_begin) amp; !is.na(week_local_rest_close_begin), min(week_state_rest_close_begin,week_local_rest_close_begin), na.omit(c(week_state_rest_close_begin,week_local_rest_close_begin)))) %gt;% mutate(week_rest_cl_end = ifelse(!is.na(week_state_rest_close_end) amp; !is.na(week_local_rest_close_end), min(week_state_rest_close_end,week_local_rest_close_end), na.omit(c(week_state_rest_close_end,week_local_rest_close_end)))) %gt;% glimpse()
В результате получается вот что. почему week_rest_cl_begin
имеет значение NA?
Columns: 7 $ fips lt;dblgt; 1001, 1009 $ week_state_rest_close_begin lt;dblgt; 12, 12 $ week_state_rest_close_end lt;dblgt; 20, 20 $ week_local_rest_close_begin lt;dblgt; NA, 12 $ week_local_rest_close_end lt;lglgt; NA, NA $ week_rest_cl_begin lt;dblgt; 12, NA $ week_rest_cl_end lt;dblgt; 20, 20
почему у меня нет NA для fips == 1009, когда я использую фильтр?
sample2 %gt;% filter(fips == 1009) %gt;% mutate(week_rest_cl_begin = ifelse(!is.na(week_state_rest_close_begin) amp; !is.na(week_local_rest_close_begin), min(week_state_rest_close_begin,week_local_rest_close_begin), na.omit(c(week_state_rest_close_begin,week_local_rest_close_begin)))) %gt;% mutate(week_rest_cl_end = ifelse(!is.na(week_state_rest_close_end) amp; !is.na(week_local_rest_close_end), min(week_state_rest_close_end,week_local_rest_close_end), na.omit(c(week_state_rest_close_end,week_local_rest_close_end)))) %gt;% glimpse() Columns: 7 $ fips lt;dblgt; 1009 $ week_state_rest_close_begin lt;dblgt; 12 $ week_state_rest_close_end lt;dblgt; 20 $ week_local_rest_close_begin lt;dblgt; 12 $ week_local_rest_close_end lt;lglgt; NA $ week_rest_cl_begin lt;dblgt; 12 $ week_rest_cl_end lt;dblgt; 20
Комментарии:
1. Вам нужно использовать
pmin()
вместоmin()
.