Если я правильно понимаю проблему, вы пытаетесь заменить NA
s в Field2
значениями от Field3
и заменить NA
s в Field3
значениями от Field2
. Предполагая, что для каждого наблюдения всегда есть одна NA
и одна строка в Field2
или Field3
, вы можете использовать dplyr coalesce
, чтобы объединить их:
library(dplyr)
mutate(df, Field4 = coalesce(Field2, Field3))
#### OUTPUT ####
Field1 Field2 Field3 Field4
1 Location Place <NA> Place
2 Time Balance <NA> Balance
3 Date <NA> Pay Pay
4 Problem <NA> Check Check
Просто убедитесь, что ваши NA
действительно NA
s не такие строки, как "NA"
. Например, сравните значения в этом фрейме данных с фреймом данных, который вы нам дали. Кроме того, убедитесь, что ваши переменные содержат строки, а не факторы:
df <- data.frame(Field1 = c("Location","Time","Date","Problem"),
Field2 = c("Place","Balance", NA, NA),
Field3 = c(NA, NA, "Pay","Check"), stringsAsFactors = F)
Примечание : я заменил один NA
, чтобы соответствовать кадру данных на изображении, т.е. c("NA","NA","Pay","NA")
равен c("NA","NA","Pay","Check")
в приведенном выше кадре данных.