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-скрипт как новый файл. Я не уверен, что и как, но сейчас он работает нормально.