Изменение символьной переменной на фактор
У меня есть R-скрипт, который иногда работает, а иногда нет, и я определил, что проблема связана с преобразованием моего персонажа -> фактор, прежде чем я объединю два набора данных вместе.
У меня есть список предметов, которые закодированы как "1", "2", "3" и т. Д. В data1 и "01", "02", "03" и т. Д. В data2, и я хочу перекодировать участника числа в data1 для соответствия data2. Сначала я пытаюсь преобразовать data1$subj в множитель, а затем перекодировать данные, используя fct_recode в forcats. Ни один из следующих двух вариантов не работает:
library(forcats)
data1$subj <- as.factor(data1$subj)
data1 <- data1 %>%
mutate(subj = fct_recode(subj,
"01" = "1",
"02" = "2",
"03" = "3"))
или же
data1 <- data1 %>%
mutate(subj = factor(subj),
subj = fct_recode(subj,
"01" = "1",
"02" = "2",
"03" = "3"))
Когда я возвращаюсь к data1 для проверки subj, он остается символьной переменной, поэтому данные не будут перекодированы.
Как я уже говорил выше, иногда это работает, а иногда нет! Я явно пропустил некоторые нюансы в своем коде. Любой совет высоко ценится!
1 ответ
Я не знаком с библиотекой forcats
, Однако я бы попробовал
levels(data1$subj)[levels(data1$subj)=="01"] <- "1"
[etc.]
ИЛИ ЖЕ:
library(plyr)
revalue(data1$subj , c("01"="1", "02"="2","03"="3"))