创建虚拟变量 if NA 1 else -1

Create Dummy Variable if NA 1 else -1

我想创建一个虚拟对象,其中包含 NA 的所有单元格变为 1,所有其他单元格变为 -1。 我尝试了不同的方法,但都没有达到我想要的结果。

1) 这导致只有 NA 值。

Cox.Reg$FirstTask <- ifelse(Cox.Reg$active_task_avg_depth == NA, 1, -1)

2) 这导致新列中仅显示 -1 值。

Cox.Reg$FirstTask <- ifelse(Cox.Reg$active_task_avg_depth == "NA", 1, -1)  

如果它是一个真正的NA,那么我们可以使用is.na来检测NA个元素,这将return TRUE对所有NAFALSE 对于其他人作为逻辑向量,可以在 ifelse 中用于更改值

ifelse(is.na(Cox.Reg$active_task_avg_depth), 1, -1)

或者另一种选择是创建数字索引并相应地更改值

c(-1, 1)[is.na(Cox.Reg$active_task_avg_depth) + 1]