Использование гавани для чтения.sav (файлы SPSS_): изменение помеченного вектора на символьную строку или коэффициент

Я использую haven библиотека для чтения .sav (SPSS) файл в R.

Некоторые значения читаются как labelledvector,

Вот пример одного:

> str(df$instructional_practice)
Class 'labelled'  atomic [1:4136] 2 2 6 6 8 8 NaN NaN 17 1 ...
  ..- attr(*, "label")= chr "intructional practice teacher is using when signaled"
  ..- attr(*, "format.spss")= chr "F8.2"
  ..- attr(*, "labels")= Named num [1:18] 1 2 3 4 5 6 7 8 9 10 ...
  .. ..- attr(*, "names")= chr [1:18] "1 Lecture" "2 Seatwk-Ind" "3 Review-Ind" "4 Seatwk-Grp" ...

Как я могу иметь значения для vector быть названиями ярлыков?

2 ответа

Решение

Ты можешь использовать haven::as_factor конвертировать помеченные векторы в факторы, используя метки в качестве уровней.

Вы можете использовать это на отдельных векторах:

df$instructional_practice = as_factor(df$instructional_practice)

Но вы также можете использовать его для всего data.frame. По умолчанию используется as_factor на data.frame преобразует все метки в уровни факторов для любой помеченной переменной.

df = as_factor(df)

На данный момент это очень похоже на R-фактор, и я предполагаю (хотя это немного расплывчато), вы либо хотите R-фактор, либо вы хотите вектор символов. Если вам нужен символьный вектор R со значениями, заменяемыми текущими числовыми значениями, вы можете использовать числовые значения в качестве индекса в именах labels атрибут:

 newvec <- names( attr( f$instructional_practice , "labels"))[f$instructional_practice]
Другие вопросы по тегам