Ошибка в цикле for в r - PullRequest
       9

Ошибка в цикле for в r

1 голос
/ 05 февраля 2011

Я работаю с фреймом данных, называемым bumpus.Когда я пытаюсь выбрать только определенные строки, используя операторы for и if, я получаю сообщение об ошибке:

Error: unexpected '{' in "for(i in 1:(nrow(bumpus)){" 

Не могли бы вы помочь мне выяснить, что мне не хватает?Вот мой цикл:

for(i in 1:(nrow(bumpus)) {
    if(bumpus[i,2]=="m")
    {
    bumpus_males<-bumpus[i,]
    }
}

Ответы [ 2 ]

9 голосов
/ 05 февраля 2011

Подсчитайте свои скобки (или используйте хороший редактор, который поможет с соответствием).

У вас есть 3 открывающих символа, затем только 2 закрывающихся перед 1-й скобкой ({), вам нужно еще одно закрывающее скобок перед фигурной скобкой, чтобы соответствовать одному для условия.

Кроме того, вы можете сделать это намного проще с помощью функции ifelse и не использовать цикл.

4 голосов
/ 05 февраля 2011

Грег решил твою проблему, но твой код все еще выглядит забавно. Как написано (с поправкой Грега), ваш цикл будет проходить через каждую строку, и если строка будет иметь «m» во втором столбце, она заменит bumpus_males на только для этой строки . Так что, если во втором столбце более одной строки есть буква "m", вы сохраните только последнюю строку как bumpus_males. Я подозреваю, что вы действительно хотите здесь больше похоже:

bumpus_males <- subset(bumpus, bumpus[,2] == "m")

Это создаст новый data.frame со всеми строками, где столбец 2 равен "m".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...