Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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
R中带有多个参数的If语句_R_If Statement - Fatal编程技术网

R中带有多个参数的If语句

R中带有多个参数的If语句,r,if-statement,R,If Statement,在阅读了评论部分并进行了以下更改后,我仍然获得了“成功”而不是“失败”: nrow(statedata) [1] 100 num = -1 if(num != "best" & num != "worst" & num < 1 & num > nrow(statedata)) print("Failure!?") else <br /> print("Success!") [1] "Success!" nrow(状态数据) [1]

在阅读了评论部分并进行了以下更改后,我仍然获得了“成功”而不是“失败”:

nrow(statedata)
[1] 100
num = -1
if(num != "best" & num != "worst" & num < 1 & num > nrow(statedata))
    print("Failure!?")
else <br />
    print("Success!")
[1] "Success!"
nrow(状态数据)
[1] 100
num=-1
如果(num!=“最佳”&num!=“最差”&num<1&num>nrow(statedata))
打印(“失败!?”)
否则
打印(“成功!”) [1] “成功!”
由于以下情况:

if(num != "best" | num != "worst" | num < 1 | num > length(10)) 
if(num!=“最佳”| num!=“最差”| num<1 | num>长度(10))
你应该使用AND not或否定,否则另一个语句总是正确的。我希望你明白我的意思。

找到了解决方案:

if(num != "best" & num != "worst" & (num < 1 | num > nrow(statedata)))
if(num!=“最佳”&num!=“最差”&(num<1 | num>nrow(statedata)))
谢谢大家! 干杯


逻辑错误很难找到。

没有问题是愚蠢的,伙计。我以前就坚持过这种情况。我猜你是从经验中学到的。学习愉快。谢谢,实际上应该是num>nrow(statedata)。在我测试并纠正这一点后,我读到了你的评论。这是一个更大的函数的一部分,我正在尝试对其进行故障排除。请注意,
&
是矢量化的。对于单一的比较,您可能需要考虑<代码> > < <代码> >代码> & & <代码> > @ Jeroen应用于长度为1的向量时,<代码>和 >代码> > <代码>静默地使用第一个元素。code>如果在这种情况下发出警告,那么可能最好使用
&
|
。最好接受@ak0053792发布的答案,而不是将其作为您自己的答案重新发布。但这并没有解决问题,我的答案解决了,这是不同的。