2014-10-19 67 views
0

我試圖創建一個新的變量,其值爲「1」,如果一個不同的變量有任何數字,如果另一個變量爲「0」有「不適用」。因此,變量的值爲3,NA,1,2,NA,我想要一個新的變量,即1,0,1,1,0。R - 創建新的變量是NA或不是 - 另一個變量的NA

我嘗試使用ifelse,數字變成1,但所有的NAs仍然是NAs。

mydata$variable_presence <- ifelse(mydata$old_variable > 0, 1, 0) 

我也嘗試過測試NA,但那只是作爲錯誤而出現的。 (我真的不想到的是工作,但認爲我應該試試。)

mydata$variable_presense <- ifelse(mydata$old_variable = NA, 0, 1) 

有什麼建議?謝謝!我猜這是非常簡單的,但我最近剛剛開始學習R。

+0

工作,謝謝! @RichardScriven – Bofstein 2014-10-19 23:52:34

+0

won782的答案實際上比使用'ifelse'好得多 – 2014-10-19 23:54:26

回答

4

簡單is.na()功能會做。 R中的布爾(邏輯)很容易被強制轉換爲二進制(如果爲真則爲1,否則爲0)。

data = c(3, NA, 1, 2, NA) 
as.numeric(!is.na(data)) 

會完成這項工作。