Объединить два вектора по значениям, отличным от NA [дубликаты]

Возможный дубликат:
Объединение двух векторов поэлементно элемент

у меня два вектора

d = c(1, 2, NA, NA)
c = c(NA, NA, 1, NA)

Как я могу получить вывод, который объединил бы не NA следующим образом?

[1] 1 2  1 NA

Благодарность


person jamborta    schedule 28.11.2012    source источник


Ответы (2)


То, что вы спрашиваете, немного расплывчато. Например, что произойдет, если ни один из элементов не является NA?

Во всяком случае, вот один метод, который дает желаемый результат:

##Don't name things c - it's confusing.
d1 = c(1,2,NA,NA)
d2 = c(NA,NA,1,NA)

d1[is.na(d1)] = d2[is.na(d1)]

Который дает:

R> d1
[1]  1  2  1 NA
person csgillespie    schedule 28.11.2012
comment
спасибо, хорошее и простое решение. (У меня нет значений, где оба элемента не являются NA). - person jamborta; 28.11.2012

pmin(d, c, na.rm = TRUE)

будет делать свое дело.

[1]  1  2  1 NA
person Sven Hohenstein    schedule 28.11.2012