首页 > 解决方案 > R if else 语句中的奇怪行为

问题描述

我对 R 编程不熟悉了。当我试图写我的第一个 if else 语句时,我遇到了一个我不理解的奇怪行为。

当我运行以下代码时:

x = 4;
y=4;
        if (x==y) {
      print('they are equal');
    } else {
      print('they are not equal');
    }

我没有收到任何错误,并且得到了预期的输出。但是,当我更改以下相同代码的缩进时:

if(x==y){print('they are equal');}
else{print('they are not equal');}  

我收到一条错误消息,提示“错误:“else”中出现意外的“else”。

那么这是否意味着 R 是一种像 Python 一样的缩进敏感语言?

标签: rif-statement

解决方案


根据我有限的经验,在R语法中,else语句应该从if语句结束的同一行开始。否则,它将无法正常工作。并且R对缩进不敏感。例如,

这将起作用

if(x==y){print('they are equal')
  } else
    {print('they are not equal')}  



[1] "they are equal"

即使这样也行

if(x==y){print('they are equal')} else
{print('they are not equal')}  

[1] "they are equal"

这也将起作用

if(x==y){print('they are equal')} else {print('they are not equal')}  

[1] "they are equal"

但是您编写的代码不起作用,因为else语句不是从if语句结束的同一行开始。另一个例子是,

这行不通

if(x==y){print('they are equal')} 
else {
  print('they are not equal')}  

此外,您不需要分号。


推荐阅读