有史以来最简单的脚本,为什么我会收到错误:
> x <- -5
> if(x > 0){
+ print("Non-negative number")
+ }
> else{
Error: unexpected 'else' in "else"
> print("Negative number")
[1] "Negative number"
> }
Error: unexpected '}' in "}"
Run Code Online (Sandbox Code Playgroud)
如果我只是把其他人放在}之后,那就没问题了.
> x <- -5
> if(x > 0){
+ print("Non-negative number")
+ } else{
+ print("Negative number")
+ }
[1] "Negative number"
Run Code Online (Sandbox Code Playgroud)
事情是我总是把它写成没有问题的第一种方式; 我疯了吗?
如果您以交互方式输入代码,R认为该if子句在看到第一个关闭括号后立即完成.然后它"认为" else正在开始一个新的声明,这是不允许的.来自help("else"):
特别是,您不应该在'}'和'else'之间使用换行符,以避免在键盘输入'if ... else'结构或通过'source'时出现语法错误.出于这个原因,防御性编程的一种(有点极端)态度是总是使用大括号,例如,对于'if'子句.
如果你使用R CMD BATCH那么这将工作.您也可以使用括号,如帮助文件所示:
x <- -5
{ if(x > 0){
print("Non-negative number")
}
else {
print("Negative number")
}
}
Run Code Online (Sandbox Code Playgroud)
或者只是包含与else闭括号相同的行.
| 归档时间: |
|
| 查看次数: |
5044 次 |
| 最近记录: |