Хорошо, поэтому я импортирую данные из большой базы данных опроса в R, и он преобразовал категориальные переменные с метками в целочисленные векторы, как это происходит .....
Однако я бы хотел преобразовать их обратно в факторы и переназначить метки, поэтому я использовал следующее:
w2$b_scdem2many <- factor(w2$b_scdem2many,
levels = c(-9,-8,-7,-2,-1,1:6),
labels = c("missing", "inapplicable", "proxy", "refusal", "dont know",
"strongly agree", "moderately agree", "slightly agree",
"slightly disagree","moderately disagree", "strongly disagree"))
Это сработало просто отлично, но с более чем 4000 переменных я не хочу набирать это так много раз.
Я думал использовать функцию apply, но она требует, чтобы это была функция, поэтому я попытался:
fac_sc <- function(x){
result <- factor(x, levels = c(-9,-8,-7,-2,-1,1:6),
labels = c("missing", "inapplicable", "proxy", "refusal", "dont know",
"strongly agree", "moderately agree", "slightly agree",
"slightly disagree", "moderately disagree", "strongly disagree"))
return(x)
return (result)
assign(x, result, envir = .GlobalEnv)
}
fac_sc(w2$b_scdem2many)
return (x) вывести w2 $ b_scdem2many, что ожидалось, учитывая, что w2 Переменная $ b_scdem2many была представлена в качестве аргумента x для функции.
return (result) напечатал соответствующие метки для каждого из значений для x, так что это ожидание, которое я хотел и хотел назначить моему данному x ( w2 $ b_scdem2many в данном случае)
Однако при назначении x, кажется, больше не принимает w2 $ b_scdem2many в качестве x, но вместо этого, похоже, предполагает, что я задаю новый x (т.е. он ищет переменную с именем x в окружении, а не ищет переменную, указанную в функции как x (w2 $ b_scdem2many).
Как обычно, я, скорее всего, упускаю что-то простое , Любая помощь будет очень высоко ценится.
Я попытался заглянуть в << - вместо присвоения, так как думал, что присвоение может воспринимать x буквально, а не как внутреннюю переменную в среде функций, но все же я получил то же самое (новый x объект, содержащий нужные метки). </p>
Кто-нибудь знает, как редактировать кадры данных с помощью функции, пожалуйста?