R 如何在分配值时处理NAs

R 如何在分配值时处理NAs,r,R,我有一个数据帧x,它包括两个变量fdhm1和fdhm2。现在,我想根据fdhm1和fdhm2的两个值生成一个新变量fdhm 具体来说,如果fdhm1!=NA和fdhm2==0,fdhm您可以尝试!is.na(x$fdhm1)(而不是x$fdhm1!=na),例如 然后 由于NA表示缺少的值,因此涉及NA的逻辑操作通常被硬编码为返回NA,而不是TRUE或FALSE。我已通过重新编写条件use不应成为询问的条件来解决此问题!NA之前==0类似使用 fdhm <- NA x <-

我有一个数据帧
x
,它包括两个变量
fdhm1
fdhm2
。现在,我想根据
fdhm1
fdhm2
的两个值生成一个新变量
fdhm

具体来说,如果
fdhm1!=NA
fdhm2==0
fdhm您可以尝试
!is.na(x$fdhm1)
(而不是
x$fdhm1!=na
),例如

然后


由于
NA
表示缺少的值,因此涉及
NA
的逻辑操作通常被硬编码为返回
NA
,而不是
TRUE
FALSE
。我已通过重新编写条件
use不应成为询问
的条件来解决此问题!NA
之前
==0
类似
使用
fdhm   <- NA
x   <- cbind(x,fdhm)
use   <- x$fdhm1 != NA & x$fdhm2 == 0
x$fdhm[use]   <- x$fdhm1[use]
x <- within(x,fdhm <- ifelse(!is.na(fdhm1)&fdhm2==0,fdhm1,NA))
> u
[1] NA  2 NA  1 NA
> u!=NA
[1] NA NA NA NA NA

> !is.na(u)
[1] FALSE  TRUE FALSE  TRUE FALSE