Значение метки в R? - PullRequest
       6

Значение метки в R?

1 голос
/ 17 февраля 2020

Спасибо за всю поддержку, которую я получил здесь до сих пор. Это очень ценится!

Я пытаюсь добавить метки значений в переменную R.

Например, в настоящее время у меня есть это в SPSS:

VARIABLE LABELS band_age_3 'Three-way banded age group'.

VALUE LABELS band_age_3
               1 '1-29'
               2 '30-49'
               3 '50-59'

FREQUENCIES band_age_3.

Будет это будет лучший метод:

2019data$band_age_3 <- factor(2019data$band_age_3,
levels = c(1,2,3),
labels = c("1-29", "30-49", "50-59"))

Как и во всех вещах, связанных с R, существует множество способов ведения дел, и мне было интересно, будет ли это наиболее подходящим.

Cheers .

Ответы [ 2 ]

0 голосов
/ 17 февраля 2020

Если вы хотите преобразовать все переменные SPSS с метками значений в факторы с исходными метками, попробуйте прочитать в ваших данных read_sav() из пакета haven. Затем используйте as_factor() на вашем фрейме данных.

library(haven)
# read in data
df <- haven::read_sav("data.sav")
# convert haven-labelled variables to factors
df1 <- haven::as_factor(df)
0 голосов
/ 17 февраля 2020

Мы можем использовать именованный вектор для замены

setNames(c("1-29", "30-49", "50-59"), 1:3)[as.character(`2019data`$band_age_3)]

Используя воспроизводимый пример

unname(setNames(c("1-29", "30-49", "50-59"), 1:3)[as.character(c(1, 3, 2, 1, 3))])
#[1] "1-29"  "50-59" "30-49" "1-29"  "50-59"
...