首页 > 解决方案 > R花括号语法

问题描述

它有效,但我想知道为什么 tis 是正确的

if (one_time_cost_year_zero != 0) { EIW_TPI_flag = 1 
} else {EIW_TPI_flag = 0}

虽然这会导致错误

if (one_time_cost_year_zero != 0) { EIW_TPI_flag = 1 } 
else {EIW_TPI_flag = 0}

这背后的逻辑是什么?

标签: rsyntax

解决方案


因为 R 不知道您的 if -else 语句尚未完成(因为只有该if () 行也是有效的 R ...)比较

1 + 2
+ 3

对比

1 + 2 +
3

在 R 中,如果我们想将一个命令拆分为多行,我们需要打开一个括号(如在 if -else 示例中)或在行尾有一个“悬挂”运算符(还有“多行”字符串,但它们本身并不是真正的命令)....然后,您看到的错误是由于我们无法以命令else开头(例如我们无法以 开头命令in|

因此,我们也可以这样写:

if (one_time_cost_year_zero != 0) { EIW_TPI_flag = 1 } else 
  {EIW_TPI_flag = 0}

推荐阅读