我想创建一个虚拟对象,其中所有包含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
元素,这将对所有TRUE
返回NA
,对其他FALSE
返回作为逻辑矢量,这可以在ifelse
中使用以更改值
ifelse(is.na(Cox.Reg$active_task_avg_depth), 1, -1)
或者另一个选择是创建数字索引并相应地更改值
c(-1, 1)[is.na(Cox.Reg$active_task_avg_depth) + 1]