r - R中数据中带有NA的if语句出错
问题描述
我的 in if 语句有问题。我收到一条错误消息,提示“需要 TRUE / FALSE 的情况下缺少值”。我正在尝试使用 if 语句和 for 循环来计算新变量,但是数据具有 NA 值,并且在找到 NA 值后我使用的循环无法进一步工作。
这是我用来创建新变量的变量:
x=c(3,3,3,2,NA,2,3,NA,3,NA)
y=c(3,6,5,4,NA,3,2,NA,3,NA)
h=c(1,2,1.6666667,2,NA,1.5,0.6666667,NA,1,NA)
这是我使用的代码存在 NA 值问题:
z=rep(NA,length(y))
for(i in 1:length(x)){
if((x[i]==0 & y[i]>=3) | h[i]>=3){
z[i]=1
} else if((x==0 & y[i]<3) | h[i]<3){
z[i]=0
}
}
你能告诉我如何将 NA 值包含到 if 语句中,或者我应该怎么做?感谢您的回复。
解决方案
NA
我们可以通过插入来进行更改is.na
for(i in 1:length(x)){
if((x[i] %in% 0 & y[i]>=3 & !is.na(y[i])) | h[i]>=3 & !is.na(h[i])){
z[i]=1
} else if((x[i] %in% 0 & y[i]<3 & !is.na(y[i])) | h[i]<3 & !is.na(h[i])){
z[i]=0
}
}
推荐阅读
- javascript - Discord.js 如何知道用户是否在语音聊天中?
- foreach - 从 prestashop tpl 文件的 foreach 中选择项目
- python - 从请求中读取 json 输入,然后在 Python 中转换为对象(FLask 部署)
- regex - 正则表达式匹配在 Notepad++ csv 中不具有恰好三个管道的行
- python - 使用 AWS Athena 的 SQLAlchemy 子查询
- .net - 使用 .net 和 sha512 的 Firebase 用户导入不起作用
- javascript - 套接字侦听器未从 React 状态获取更新
- java - 从三元运算符退出方法
- reactjs - Formik 验证开/关
- youtube - 设计 Youtube 观看次数