我正在尝试将数字除以两个if语句的结果之和。由于某种原因,R在完成第一个if语句后忽略两个if语句的括号,仅对第一个if语句进行除法。在第一个if语句周围加上括号时,该公式将按预期工作。问题是:为什么呢?
用ifelse(y == 2,4,1)替换if语句可以解决该问题,以及多余的括号。我很好奇为什么第一次测试会给我出乎意料的结果。
x <- 1
y <- 2
z <- 4
test1 <- z/(if(y==2){4}else{1}+if(x==1){4}else{1})
> print(test1)
[1] 1
test2 <- z/((if(y==2){4}else{1})+if(x==1){4}else{1})
> print(test2)
[1] 0.5
Run Code Online (Sandbox Code Playgroud)
我希望test1和test2的结果均为0.5