我正在处理一份大型数据集,并尝试确定哪些行同时满足两个列的条件。但是,我希望排除分析中的某些值,并且我认为将它们设置为“NA”最好。为了使问题更加复杂,在其中一个列中出现“NA”的情况下,我仍然希望查看具有数值的另一列是否仍然满足条件。下面是我的数据集示例。
col1 = as.numeric(c(10, 2, 15, 2, "NA", 15))
col2 = as.numeric(c(15, 15, 2, 2, 15, "NA"))
test <- data.frame(col1, col2)
假设我的截止值为5,我希望得到以下结果:
col1 col2 G5
1 10 15 Yes
2 2 15 No
3 15 2 No
4 2 2 No
5 NA 15 Yes
6 15 NA Yes
我尝试了以下操作,但第5和6行返回“NA”,我不知道如何解决这个问题。
test$G5 <- ifelse(test$col1 > 5 & test$col2 > 5, "Yes", "No")
col1 col2 G5
1 10 15 Yes
2 2 15 No
3 15 2 No
4 2 2 No
5 NA 15 <NA>
6 15 NA <NA>
如何最好地设置ifelse语句,使得"NA"被视为"False"?我认为问题在于当ifesle考虑任一列并使用"NA"执行逻辑测试时,它只能返回"NA"。
这是我第一次发布内容,所以我的格式可能非常糟糕......对此感到抱歉!
谢谢
NA
的反向,它们应该最终变成“无”。如果我理解有误,请OP纠正我。 - astrofunkswagNA
视为false不一致,应该忽略/将其视为true。 - astrofunkswag