【问题标题】:Deleting Value Labels in SPSS在 SPSS 中删除值标签
【发布时间】:2015-06-19 16:29:53
【问题描述】:

我将来自调查猴子的数据导入到 spss 中,调查猴子自动分配值和值标签。我的价值观和标签目前是这样的:

1 “已婚” 2“单” 3“777” 4“999”

我重新编码变量,使 3=777 和 4=999。然后我将 777 和 999 设置为缺失。然后我使用添加值标签添加 777=“拒绝”和 999=“不知道”。如何使用语法删除 3 和 4 的值和值标签?这些不再正确,因为我重新编码了值 3 和 4。我知道我可以使用 VALUE LABELS 删除我所有的值和标签,但我必须指定我的所有类别,这将是乏味的。理想情况下,我想重新编码 3 和 4 值,为新的 777 和 999 值添加值标签,并删除旧的 3 和 4。如果我只有几个变量,我会考虑用不同的方式做,但我想要编写可用于包含大约 100 个变量的列表的语法。我还将每周从调查猴子中提取数据,并希望每次提取数据时都可以使用语法文件来重命名、重新编码和添加值标签。

【问题讨论】:

    标签: spss


    【解决方案1】:

    我认为没有办法仅删除特定值的特定值标签。所以解决方法是显式设置整个值集的值:

    DATA LIST FREE / MS.
    BEGIN DATA
    1 2 3 4
    END DATA.
    
    /* 1. Original values labels */.
    VALUE LABELS MS 1 "Sinlge" 2 "Married" 3 "777" 4 "999".
    CTABLES /TABLE MS[C].
    
    /* 2. Recode values and re-label - Note values 3 and 4 are still assigned values but they happen to be blank as they are being registered by CTABLES */.
    RECODE MS (3=777) (4=999).
    ADD VALUE LABELS MS 3 "" 4 "" 777 "Refused" 999 "Unknown".
    CTABLES /TABLE MS[C].
    
    /* 3. Workaround is to assign explicitly entire set of values */.
    VALUE LABELS MS 1 "Sinlge" 2 "Married" 777 "Refused" 999 "Unknown".
    CTABLES /TABLE MS[C].
    

    更新:

    嗯,在计算领域没有什么是不可能的。 Raynald Levesque 概述了一种解决方法here。 Ruben Geert van den Berg 在他的website 上也提供了一个 python 解决方案。

    【讨论】:

      【解决方案2】:

      这可以在 SPSS 语法中使用 python begin-end 程序块:

      DATA LIST FREE / MS (F1.0).
      BEGIN DATA
      END DATA.
      
      VALUE LABELS MS 1 "Married" 2 "Single" 3 "777" 4 "999".
      ADD VALUE LABELS MS 777 "Refused" 999 "Don't know".
      

      BEGIN PROGRAM.
      import spss
      
      qst='MS'
      values=[3,4]
      with spss.DataStep():
          datasetObj=spss.Dataset();varObj = datasetObj.varlist[qst];valObj=varObj.valueLabels
          print 'Before:',valObj
          for i in values: 
              try:
                  del valObj[i]
              except:
                  continue   
          print 'After:',valObj
      END PROGRAM.
      

      输出日志:

      Before: {1.0: 'Married', 2.0: 'Single', 3.0: '777', 4.0: '999', 999.0: "Don't know", 777.0: 'Refused'} 
      After: {1.0: 'Married', 2.0: 'Single', 777.0: 'Refused', 999.0: "Don't know"}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-25
        • 1970-01-01
        • 1970-01-01
        • 2011-01-24
        • 2014-09-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多