R - 创建另一个变量的NA或非NA的新变量

时间:2014-10-19 23:46:59

标签: r variables transformation

我正在尝试创建一个值为" 1"的新变量。如果一个不同的变量有任何数字,并且" 0"如果另一个变量有" NA。"所以变量的值有3,NA,1,2,NA,我想要一个新的变量,即1,0,1,1,0。

我尝试使用ifelse,它将数字转换为1,但所有的NA仍然是NA。

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

我也尝试过测试NA,但这只是一个错误。 (我真的没想到会这样,但我想我应该试试。)

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

有什么建议吗?谢谢!我猜这很简单,但我最近才开始学习R.

1 个答案:

答案 0 :(得分:4)

简单is.na()功能可以。 R中的布尔(逻辑)可以很容易地被强制转换为二进制(如果为真则为1,如果为假则为0)。

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

将完成这项工作。