Применение длинного списка меток с коэффициентом в R - PullRequest
1 голос
/ 03 мая 2020

Обычно, когда я хочу пометить фактор, я использую функцию apply_labels из expss и добавляю вручную все метки, например:

apply_labels(df,
                var1=c("label1"=1,"label2"=2,"label3"=3),
                var2=c("label4"=1,...),
                ...)

Но в моем текущем случае я иметь немаркированный коэффициент df$PAVEUN, который имеет 417 возможных значений. В другой таблице (df2) у меня есть все уникальные значения с соответствующей меткой (df2$ENGLISH). Ниже представлен обзор этого кадра данных:

> head(df2)
  CODE                                            ENGLISH
1    1                                           Managers
2   11 Chief executives, senior officials and legislators
3  111                   Legislators and senior officials
4 1111                                        Legislators
5 1112                        Senior government officials
6 1113            Traditional chiefs and heads of village

Как пометить df$PAVEUN с помощью df2$ENGLISH, не делая это вручную?

Ответы [ 2 ]

1 голос
/ 03 мая 2020

Я думаю levels(df$PAVEUN) <- df2$ENGLISH) будет делать то, что вы хотите. Однако вы должны убедиться, что порядок уровней соответствует правильно ... если значения df2$CODE соответствуют значениям в df$PAVEUN, вы можете использовать merge() (из базы R) или один из *_join() работает от Tidyverse, чтобы быть более осторожным.

0 голосов
/ 03 мая 2020

Для помеченных переменных приведенный ниже код должен помочь:

apply_labels(df,
                paven=setNames(df2$CODE, df2$ENGLISH),

                ...)

Вообще говоря, помеченные переменные и факторы - это разные вещи. Код для факторов будет выглядеть так:

df$paven_factor = factor(df$paven, levels = df2$CODE, labels = df2$ENGLISH) 
...