【问题标题】:Importing values and labels from SPSS with memisc使用 memisc 从 SPSS 导入值和标签
【发布时间】:2013-11-11 20:08:30
【问题描述】:

我想从数据集中导入值和标签,但我不明白如何使用这个包(文档不清楚)。我知道这是可能的,因为Rz(R 的 gui 接口)使用 memisc 来做到这一点。不过,我更喜欢不要依赖太多的包。

这是我仅有的一段代码:

dataset <- spss.system.file("file.sav")

【问题讨论】:

    标签: r spss


    【解决方案1】:

    请参阅?importer() 中的示例,其中涵盖了spss.system.file()

    spss.system.file 创建一个可以显示变量名称的“导入器”对象。

    要实际使用数据,您需要执行以下任一操作:

    ## To get the whole file
    dataset2 <- as.data.set(dataset)
    
    ## To get selected variables
    dataset2 <- subset(dataset, select=c(variable names)) to get selected variables.
    

    您最终会得到一个相当复杂的 data.set 对象,但确实有您想要的。对于分析,你通常需要在 dataset2 上做:as.data.frame

    【讨论】:

    • data.sets 是 S4 对象,因此具有提取器功能。请参阅 ?memisc 并遵循手册。当您执行 as.data.frame() 时,默认情况下标记的变量会变成因子,因此标签会像平常一样变成因子水平。需要注意的是带有几个标签的数字变量(通常用于不同种类的缺失值)。您需要设置“测量”,使这些变为数字,系统缺失变为 NA。
    【解决方案2】:

    我想出了一个我喜欢的解决方案

    df <- suppressWarnings(read.spss("C:/Users/yada/yada/yada/ - SPSS_File.sav", to.data.frame = TRUE, use.value.labels = TRUE))
    
    var_labels <- attr(df, "variable.labels")
    names <-  data.frame(column = 1:ncol(df), names(df), labels = var_labels, row.names=NULL) 
    names(df) <- names$labels 
    names(df) <- make.names(df))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 2014-03-08
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多