R "for loop" сообщения об ошибках {}

Так как пару дней назад, когда я запускаю цикл for в R, он выдает мне много ошибок, связанных с "}". Это происходит только тогда, когда я выделяю весь код и запускаю его. Если я выполняю его построчно, то все работает нормально.

Я пробовал даже с самой простой петлей:

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 ответа

У меня возникла та же проблема, и я обнаружил, что она вызвана ошибкой в ​​RStudio (код отлично работает в R и R-GUI, но не работает в RStudio.) Трудно воспроизвести, пока что-то не будет повреждено в сохраненном RStudio состояние, после которого поведение довольно последовательное.

Удаление ~/.rstudio-desktop исправил проблему для меня.

mv ~/.rstudio-desktop ~/rstudio-desktop.old

Подробнее о сбросе состояния RStudio на различных платформах здесь.

Я также использую Rstudio и получаю то же сообщение об ошибке при запуске циклов.

Error: unexpected '}' in "}"

Если я получу файл, вот так...

source('~/.active-rstudio-document')

или если я просто нажимаю кнопку "источник" в графическом интерфейсе, я не получаю того же сообщения об ошибке.

Если вы не можете использовать весь сценарий R, попробуйте скопировать цикл for в другой файл и получить его.

Я подозреваю, что проблема заключалась в использовании скрипта R, который я скачал с веб-сайта. В итоге я переустановил R и сохранил свой собственный R-скрипт как новый файл. Я не уверен, что и как, но сейчас он работает нормально.

Другие вопросы по тегам