Я создал фрейм данных S, объединив два фрейма данных innov2015 и innov2017 в один уникальный столбец идентификации.Некоторые случаи в innov2015 не включены в innov2017 и наоборот, поэтому для некоторых случаев есть записи NA для половины переменных в S.
Я хочу вычислить p = (p_2015 + p_2017) / 2однако, когда есть запись NA для p_2015, я хочу p = p_2017 и наоборот.
Я пытался сделать это с помощью:
S <- merge(x = innov_2015_2, y = innov_2017_2, by = "cell_no", all = TRUE) %>%
mutate(p = 0) %>%
mutate_at(vars(p), funs(ifelse(is.na(smalln_2015), p_2017,(p_2015+p_2017)/2))) %>%
mutate_at(vars(p), funs(ifelse(is.na(smalln_2017), p_2015,(p_2015+p_2017)/2))) %>%
Если я запускаю
S <- merge(x = innov_2015_2, y = innov_2017_2, by = "cell_no", all = TRUE) %>%
mutate(p = 0) %>%
mutate_at(vars(p), funs(ifelse(is.na(smalln_2015), p_2017,(p_2015+p_2017)/2))) %>%
p принимает желаемое значение.
, когда я запускаю оба оператора mutate_at ()
S <- merge(x = innov_2015_2, y = innov_2017_2, by = "cell_no", all = TRUE) %>%
mutate(p = 0) %>%
mutate_at(vars(p), funs(ifelse(is.na(smalln_2015), p_2017,(p_2015+p_2017)/2))) %>%
mutate_at(vars(p), funs(ifelse(is.na(smalln_2017), p_2015,(p_2015+p_2017)/2))) %>%
, второй оператор mutate_at () создает желаемые значения, однако он отменяет первыйОператор mutate_at () и где p принял правильное значение, теперь есть NA
Что мне нужно сделать, чтобы оба оператора mutate_at () работали без отмены предыдущего?