我正在嘗試根據其他三個變量的值對新變量進行編碼。具體來說,如果所有的變量都是NA,我希望新的變量取NA,如果它們中的任何一個是1,它應該取1,否則它應該取0.但是,我遇到一個錯誤,使用下面的代碼:在R中使用NAs重新編碼變量
frame <- data.frame(x = c(NA,NA,1), x2 = c(NA, NA, 0), x3 = c(NA,0,0))
frame
y <- ifelse(is.na(frame$x) == TRUE & is.na(frame$x2) == TRUE & is.na(frame$x3) == TRUE, NA, 0)
y2 <- ifelse(frame$x == 1 | frame$x2 == 1 | frame$x3 == 1, 1, y)
y的第二個數字正確0,但在y2中引用時變爲NA。任何想法爲什麼發生這種情況?得到預期
首先,'is.na(x)== TRUE'就相當於'is.na(x)'。兩者都是邏輯值,所以不需要'== TRUE'部分。 – cbare