小编Ber*_*end的帖子

什么时候需要在if语句周围加上括号来控制R中公式的顺序?

我正在尝试将数字除以两个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

if-statement r sequence

12
推荐指数
1
解决办法
197
查看次数

标签 统计

if-statement ×1

r ×1

sequence ×1