使用haven读取.sav(SPSS_文件):将标记向量更改为字符串或因子

Jos*_*erg 3 r spss r-haven

我正在使用该haven库将.sav(SPSS) 文件读入 R。

某些值读取为labelled vector.

这是一个例子:

> 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" ...
Run Code Online (Sandbox Code Playgroud)

如何vector获得标签名称的值?

aos*_*ith 6

您可以使用haven::as_factor标签作为级别将标记向量转换为因子。

您可以在单个向量上使用它:

df$instructional_practice = as_factor(df$instructional_practice)
Run Code Online (Sandbox Code Playgroud)

但是您也可以在整个 data.frame 上使用它。默认情况下as_factor,在 data.frame 上使用会将所有标签转换为任何标记变量的因子级别。

df = as_factor(df)
Run Code Online (Sandbox Code Playgroud)