Мне дали таблицу Excel, подобную этой:
datos <- data.frame(op= 1:4, var1= c(4, 2, 3, 2))
Теперь есть другие таблицы с ключами для op
и var1
, которые являются категориальными переменными. Предположим, что после загрузки они становятся:
set.seed(1)
op <- paste("op",c(1:4),sep="")
var1 <- sample(LETTERS, 19, replace= FALSE)
Как видите, во фрейме данных есть неиспользуемые уровни. Я хочу заменить числа на соответствующие уровни. Вот что я пробовал:
datos[] <- lapply(datos, factor)
levels(datos$op) <- op
levels(datos$var1) <- var1
Это не удается, потому что это переупорядочивает факторы в алфавитном порядке и дает неверный результат. Затем я попробовал:
datos$var1 <- factor(datos$var1, levels= var1, ordered= TRUE)
но это помещает все в datos$var1
как NA
(я думаю, это из-за несоответствия длины.
Как правильно это сделать?
datos$var1 <- factor(var1[datos$var1], levels = unique(var1))
? - person talat   schedule 15.02.2016