(см. Примечание " ВАЖНО " ниже - вопрос не решается ответами на аналогичный пост; это не дубликат)
У меня есть кучакадров данных с тонной векторов, содержащих те же две шкалы Ликерта, которые мне нужно перекодировать из строк (в настоящее время в виде факторов) в числовые значения (от 1 до 5).Вот шкалы:
Likert scale A:
---------------
Terrible = 1
Below Average = 2
Average = 3
Above Average = 4
Excellent = 5
Likert Scale B:
---------------
Strongly disagree = 1
Somewhat disagree = 2
Meh = 3
Somewhat agree = 4
Strongly agree = 5
Например, HAVE1
, один из множества наборов данных (каждый из которых имеет различное количество векторов и разных имен векторов) с этими шаблонами likert:
Apples Oranges Bananas ServiceGood ShortTime
Excellent Terrible Average Somewhat agree Somewhat agree
Excellent Above Average Strongly agree Somewhat agree
Above Average Terrible Below Average Somewhat disagree
Excellent Average Below Average Meh Strongly disagree
Below Average Terrible Above Average Somewhat agree Meh
… … … … …
Мне нужно заменить строки символов числовым эквивалентом из приведенных выше кодов шкалы Ликерта.Например, первые 5 наблюдений WANT1
должны выглядеть следующим образом:
Apples Oranges Bananas ServiceGood ShortTime
5 1 3 4 4
5 NA 4 5 4
4 1 2 NA 2
5 3 2 3 5
2 1 4 4 3
… … … … …
Я ищу эффективные способы изменения этих значений, которые не требуют вызова имен векторов из-за различийв именах и позициях на всех моих HAVE
данных.Есть мысли?
ВАЖНО: эта проблема НЕ решена ни одним из примеров, приведенных в вопросе " Стиль словаря заменяет несколько элементов ";каждый ответ выдает какую-то ошибку или заполняет значения большинства переменных с помощью NA / заменяет неправильные значения.
Например, следующий код ...
map = setNames(c("Excellent", "Above Average", "Below Average", "Average", "Terrible"),
c("5", "4", "2", "3", "1"))
HAVE1[] <- map[unlist(HAVE1)]
Устанавливает каждое значениев моем файле к NA кроме пустых ячеек, которые он кодирует как "Грозный".Единственное решение из другого вопроса, которое работает в ответе «словарей», - это решение, предложенное самим вопросом в вопросе - именно этого подхода он хотел избежать.