2014-10-19 56 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)) 

会完成这项工作。

相关问题