几天前,当我在R中运行for循环时,它给了我很多与“}”相关的错误。只有突出显示整个代码并运行它才会发生。如果我逐行执行它,那么它运行得很好。
我尝试了最基本的循环:
foo <- seq(1, 100, by=2)
foo.squared <- NULL
for (i in 1:50 ) {
foo.squared[i] <- foo[i]^2
}
这是控制台:
> foo <- seq(1, 100, by=2)
"rror: unexpected input in "foo <- seq(1, 100, by=2)
> foo.squared <- NULL
"rror: unexpected input in "foo.squared <- NULL
> for (i in 1:50 ){
"rror: unexpected input in "for (i in 1:50 ){
> foo.squared[i] <- foo[i]^2
"rror: unexpected input in " foo.squared[i] <- foo[i]^2
> }
Error: unexpected '}' in "}"
>
R会话的详细信息(我在RStudio中运行):
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
一直很烦人!!我很感激任何建议! 谢谢, 玛利亚
更新:
以下是我怀疑导致此问题的一开始的代码。它应该采用名称向量并从中提取第二个元素。
splitnames <- strsplit(as.character(train$Name),"[,.]")
firstelement <- function(x){x[2]}
sapply(splitnames,firstelement)
执行后,R表现得很奇怪。虽然我不是100%肯定。
答案 0 :(得分:1)
我遇到了同样的问题,并且发现它是由RStudio中的错误引起的(代码在R和R-gui中运行良好,但在RStudio中运行失败。)在某些内容损坏之前很难重现在RStudio的保存状态下,行为非常一致。
删除~/.rstudio-desktop
为我解决了问题。
mv ~/.rstudio-desktop ~/rstudio-desktop.old
有关在各种平台here.
上重置RStudio状态的更多信息答案 1 :(得分:0)
我怀疑问题在于使用我从网站下载的R脚本。我最终重新安装了R并将我自己的R脚本保存为新文件。我不知道是什么以及如何,但现在它工作正常。
答案 2 :(得分:0)
我也在使用Rstudio并在运行for循环时收到相同的错误消息。
Error: unexpected '}' in "}"
如果我采购文件,就像这样...
source('~/.active-rstudio-document')
或者如果我只是单击GUI中的“source”按钮,我就不会收到相同的错误消息。
如果不能选择整个R脚本,请考虑将for循环复制到另一个文件并获取该文件。