Может кто-нибудь помочь мне понять, как R обрабатывает NA в выражениях ifelse?
Допустим, у меня есть следующие векторы:
x <- c(1, 1, 3, NA, 4)
y <- c(1, NA, 1, NA, NA)
Я хочу создать еще один вектор на основе этих двух векторов, и я хочу получить следующий вывод:
z <- c(1, 1, 2, 0, 0)
Я пробовал это:
z <- ifelse(x == 1, 1
, ifelse(y == 1, 2, 0))
И я пробовал это (что кажется чрезмерным из-за необходимости объяснить все это):
z <- ifelse(x == 1, 1
, ifelse(!is.na(x)
, ifelse(y == 1, 2
, ifelse(is.na(y), 0, NA))
, 0))
В любом случае это тоже не сработало ... Оба возвращают:
> z
[1] 1 1 2 NA NA
Может кто-нибудь, пожалуйста, помогите мне понять не только как получить желаемый результат, но и как R обрабатывает NA при работе с ifelse, включающим 2 вектора ?
Спасибо.