如何将值标签应用于所选变量?

时间:2016-02-22 19:24:35

标签: r spss

我有一份来自SPSS的.sav文件,其中包含通过调查问卷进行的调查数据。我试图在R中打开这个.sav文件,但是我在复制原始数据文件的结构方面遇到了问题。这意味着在原始数据文件中有变量具有值和标签,例如。变量“对XY的满意度”具有值“1”“2”和“3”,其中相应的标签1 =“满意”,2 =“满意和不满足”,3 =“不满足”。

我发现通过“memisc”包我可以通过创建“item”变量来复制这个结构。代码如下所示:

labels(data$XY) <- c("satisfied"       =  1,     
                         "both satisfied and unsatisfied"             =  2,
                         "unsatisfied" =  3)

我不知道的是如何将其应用于我选择的所有变量(不仅仅是一个变量而不是所有变量)。

1 个答案:

答案 0 :(得分:0)

避风港套餐适用于SPSS调查数据。这是一个工作流程:

library(haven)
# Load data
dat <- read_spss("your_SPSS_file.sav")

# Identify the "labelled"-class variables
labeled_vars <- sapply(dat, function(x) class(x) == "labelled")

# Convert only the labeled vars to factors
dat[, labeled_vars] <- lapply(dat[, labeled_vars], as_factor)

这将创建保留原始顺序的因子(由于基础数值)和标签作为SPSS变量。

您还可以处理SPSS变量标签(与变量名称对比)。阅读SPSS数据后,获取变量标签:

var_names <- sapply(raw, function(x) attr(x, "label"))

然后将它们分配给上述代码产生的data.frame:

names(dat) <- var_names