Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;或;带NA和空白的r中的条件_R_Conditional Statements_Na_Missing Data_Nonblank - Fatal编程技术网

&引用;或;带NA和空白的r中的条件

&引用;或;带NA和空白的r中的条件,r,conditional-statements,na,missing-data,nonblank,R,Conditional Statements,Na,Missing Data,Nonblank,我最近看到了一个我不明白的问题。给你: x <- c(1,2,3,4,45,654,3,NA," ",8,5,64,54) 我希望if函数返回TRUE,但它是FALSE。有人能帮我理解这个问题吗?谢谢 编辑: 对不起,伙计们,我想在if语句中使用参数,所以长度应该是1在此不适用。请注意,|的两侧都是向量 x <- c(1,2,3,4,45,654,3,NA," ",8,5,64,54) is.na(x) ## [1] FALSE FALSE FALSE FALSE FALSE

我最近看到了一个我不明白的问题。给你:

 x <- c(1,2,3,4,45,654,3,NA," ",8,5,64,54)
我希望
if
函数返回
TRUE
,但它是
FALSE
。有人能帮我理解这个问题吗?谢谢

编辑:


对不起,伙计们,我想在
if
语句中使用参数,所以长度应该是1<代码>在此不适用。

请注意,
|
的两侧都是向量

x <- c(1,2,3,4,45,654,3,NA," ",8,5,64,54)

is.na(x)
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

x == " "
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
同:

is.na(x)[1] || (x == " ")[1]
## [1] FALSE
其中,
|
的两侧在上行中均为
FALSE

如果您试图确定任何元素是
NA
还是
,则

anyNA(x) || ( " " %in% x )
## [1] TRUE
您也可以对右手侧使用
any(x==“”)
,但这只起作用,因为我们知道,如果由于左手侧存在任何
NA
值,并且如果左手侧为
TRUE,则
|
从不运行
|
的右手侧,则不会执行右手侧(短路)。如果
x
完全
NA
,则
any(x==”)
将等于
NA
,而不是
TRUE
FALSE
,这使得左侧的
NA
测试非常重要


(请注意,
|
是不同的。它不会短路。在执行
|
之前对两侧进行评估。)

请注意,
|
的两侧都是向量

x <- c(1,2,3,4,45,654,3,NA," ",8,5,64,54)

is.na(x)
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE

x == " "
## [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
同:

is.na(x)[1] || (x == " ")[1]
## [1] FALSE
其中,
|
的两侧在上行中均为
FALSE

如果您试图确定任何元素是
NA
还是
,则

anyNA(x) || ( " " %in% x )
## [1] TRUE
您也可以对右手侧使用
any(x==“”)
,但这只起作用,因为我们知道,如果由于左手侧存在任何
NA
值,并且如果左手侧为
TRUE,则
|
从不运行
|
的右手侧,则不会执行右手侧(短路)。如果
x
完全
NA
,则
any(x==”)
将等于
NA
,而不是
TRUE
FALSE
,这使得左侧的
NA
测试非常重要


(请注意,
|
是不同的。它不会短路。在执行
|
之前,会对两侧进行评估。)

如果
只在长度为1的条件下工作,就像在大多数编程语言中一样。请注意,
是.na(x)
比长度1长得多,所以…这里的目标是什么?也许
如果其他
就是你需要的,将它与
任何
如果(任何(is.na(x)| x==”)
@user95902用于相同的输入,我得到的是
真的
,你是在使用
还是
|
|
。我已经使用了
@not u a|u机器人
如果(condition){TRUE}else{FALSE}
是编写
条件的一个很长的过程,如果
只在长度为1的条件下工作,就像在大多数编程语言中一样。请注意
是.na(x)
比长度1长得多,所以…这里的目标是什么?也许
如果其他
就是你需要的,将它与
任何
如果(任何(is.na(x)| x==”)
@user95902用于相同的输入,我得到的是
真的
,你是在使用
还是
|
|
。我已经使用了
@not u a|u机器人
如果(条件){TRUE}否则{FALSE}
写条件是很长的一段路
谢谢!这回答了我的问题!谢谢!这回答了我的问题!