Проблема в вашем выражении ifelse
заключается в том, что вы используете один знак равенства для логического выражения. =
используется для назначения левого верхнего уровня в R. При вызове функции это означает, что вы присваиваете аргумент b
"Your category choice is correct"
.
Чтобы получить логическое выражение, вам нужно использовать два знака равенства ==
. Следующий код работает (используя данные mropas):
b <- c(rep("Your category choice is correct", 3),
rep("Your category choice is incorrect", 5),
rep("Your category choice is correct", 2))
b_recoded <- ifelse(b == "Your category choice is correct", 1, 0)
Также обратите внимание, что я опустил функции c()
, так как вам не нужно объединять отдельные элементы.
Если вы начинаете с R, может быть полезно прочитать одно из вводных руководств или хотя бы сохранить его в качестве справочного материала. Вот тот, который мне понравился, когда я изучил R:
http://cran.r -project.org / DOC / вно / Paradis-rdebuts_en.pdf