R“for loop”错误消息{}

时间:2014-03-02 21:42:01

标签: r for-loop error-handling

几天前,当我在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%肯定。

3 个答案:

答案 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循环复制到另一个文件并获取该文件。