Как перекодировать символьную переменную в R с ошибкой «неожиданный символ»

Я хочу перекодировать свои данные из символа в число. Вот моя неудачная попытка:

library(car) # needed for recode
survey1$V16a = recode(survey1$V16, "'Very important'=1; 'Fairly important'=2; 'Not very important'=3; 'Not important at all'=4; 'Can't choose'=99;", as.numeric.result=TRUE)

Это сообщение об ошибке, которое я впоследствии получаю

Ошибка в перекодировании(опрос1$V16, "'Очень важно'=1; 'Довольно важно'=2; 'Не очень важно'=3; 'Совсем не важно'=4; 'Не могу выбрать'=99;" , :

в термине перекодирования: «Не могу выбрать» = 99 сообщение: Ошибка в разборе (текст = strsplit (term, «=") [[1]] [1]): : 1: 7: неожиданный символ 1: «Может» т


person M Sat    schedule 15.03.2016    source источник
comment
попробуйте поставить \ перед ' в Can\'t, это сбивает с толку R   -  person TheRimalaya    schedule 15.03.2016
comment
Пожалуйста, всегда указывайте, какие пакеты вы используете. recode происходит из пакета car   -  person Alex W    schedule 15.03.2016
comment
@TheRimalaya, пожалуйста, напишите как ответ ...   -  person Ben Bolker    schedule 20.04.2016


Ответы (1)


Для этого нет реальной необходимости использовать дополнительный пакет, такой как car. Это также делает код менее читаемым, на мой взгляд. Просто используйте ifelse.

survey1$V16a <- ifelse(survey1$V16a == "Very important", 1, 
                ifelse(survey1$V16a == "Fairly important", 2,
                ifelse(survey1$V16a == "Not very important", 3,
                .... )))))
person Alex W    schedule 15.03.2016