我有一份来自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)
我不知道的是如何将其应用于我选择的所有变量(不仅仅是一个变量而不是所有变量)。
答案 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