Я пытаюсь преобразовать вектор - «Многолетний опыт» с несколькими тысячами наблюдений в числовое значение. Потенциальные ответы для «лет опыта» кодируются как «от 0 до 1», «от 1 до 2», «от 2 до 3» и т. Д. Вплоть до «от 39 до 40».
Я думал, что простая команда factor
предоставит числовой вектор. Рассмотрим следующие примеры ответов для многолетнего опыта, когда я ищу, чтобы 1 было связано с ответом «0 к 1»:
YE<- c("8 to 9", "2 to 3", "1 to 2"...."39 to 40"
YE_adjusted<- as.numeric(factor(YE, c(1,2,3,4,5,6,7....40)
View(YE_adjusted)
Мы просматриваем YE_adjusted
все, что я вижу, это вектор значений NA. Какое правильное решение для получения желаемого результата?
list
изNULL
и (б) векторNA
(и я подозреваю, что он у вас есть). Второй аргументfactor
- это уровни, которые ему назначаются, и они обычно начинаются с уникальных значений в векторе символов, а не с произвольных чисел (у вас может быть больше уровней, чем в данных, но не наоборот). Поэтому, если вы заменитеc(1,2,3,...,40)
наunique(YE)
, он будет работать без ошибок, но я не знаю, что вам нужно. - person r2evans   schedule 06.08.2019as.integer(factor(YE))
? - person r2evans   schedule 06.08.2019cut
? - person r2evans   schedule 06.08.2019data<- c("1 to 2", "7 to 8", "7 to 8", "0-1"...."36 to 37") #up to 40 years of experience values possible. f_test<- as.numeric(factor(data, unique(data))) f_test_2<- as.integer(factor(data)) View(f_test) View(f_test_2)
Ни одна из этих двух строк не возвращает то, что я ищу, а именно числовой вектор (2,8,8,1 ... 37). ФактическиView f_test_2
возвращает 2,38,38 ... - person Sud Sampath   schedule 06.08.2019