Это должно быть довольно простым, но даже после проверки всех документов и онлайновых примеров я не понимаю.
Я хотел бы использовать switch() для замены значений символьного вектора.
Поддельный, чрезвычайно простой, воспроизводимый пример:
test<-c("He is", "She has", "He has", "She is")
Скажем, я хочу назначить "1" предложениям, включая глагол "быть" и "2", к предложениям, включая глагол "иметь". Следующие НЕ РАБОТАЮТ:
test<-switch(test,
"He is"=1,
"She is"=1,
"He has"=2,
"She has"=2)
Сообщение об ошибке:
+ + + + Error in switch(test, `He is` = 1, `She is` = 1, `He has` = 2, `She has` = 2) :
EXPR must be a length 1 vector
Я думаю, что EXPR действительно является вектором длины 1, так что неправильно?
Я подумал, что, возможно, ожидаемые символы R были заменены, но ни один из переключателей wrap() в "as.integer" и следующую работу:
test<-switch(test,
"He is"="1",
"She is"="1",
"He has"="2",
"She has"="2")
Может, это не векторизация, и я должен сделать цикл? Это оно? Было бы неутешительно, учитывая, что сила R - векторизация. Спасибо заранее!