【问题标题】:SPSS - Filter columns based on specific criteriaSPSS - 根据特定条件过滤列
【发布时间】:2020-10-25 18:21:08
【问题描述】:

我有一个数据集(见下文),我想过滤掉麦当劳列中为 1 的任何观察结果,例如 ID#3(我不希望麦当劳在我的分析)。我想保留其他列中有 1 的任何观察结果(即使 McDonalds 列中有 1 - 例如 ID #1-2)。我已经尝试使用选择案例选项,并且只设置 McDonalds=0,但这会过滤掉其他列中也有 1 的任何观察结果。下面是我的数据集示例,我实际上有更多列,并且试图避免在 SPSS 的“选择案例”选项中单独命名每个其他列。有人可以帮助我吗?谢谢。

数据:

【问题讨论】:

    标签: spss


    【解决方案1】:

    为避免单独命名其他列,您可以在语法中使用to。此外,基本上,您希望在任何其他列中保留具有 1 的行,而不管 Mcdonald 列中的值如何,因此无需在语法中提及它。
    例如,假设您的列名是 McDonalds、RedBull、var3、var4、var5、TacoBell,您可以使用以下任一选项:

    select if any(1, RedBull to TacoBell).
    

    或者这个:

    select if sum(RedBull to TacoBell)>1.
    

    注意:使用to 约定要求相关变量在数据中是连续的。

    【讨论】:

      【解决方案2】:

      您只需在所有提及的条件之间添加"OR" 运算符(即竖线:|)。

      所以基本上,您希望在McDonalds = 0 | RedBull = 1 | TacoBell = 1 时保留这些案例。

      您可以将上述行复制到 Select cases -> If 选项中,或者将以下行写入 SPSS 语法文件,将 DataSet1 替换为数据集的名称:

      DATASET ACTIVATE DataSet1.
      USE ALL.
      COMPUTE filter_$=(McDonalds = 0 | RedBull = 1 | TacoBell = 1).
      VARIABLE LABELS filter_$ 'McDonalds = 0 | RedBull = 1 | TacoBell = 1 (FILTER)'.
      VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
      FORMATS filter_$ (f1.0).
      FILTER BY filter_$.
      EXECUTE.
      

      【讨论】:

        猜你喜欢
        • 2019-09-20
        • 1970-01-01
        • 2012-12-08
        • 1970-01-01
        • 2017-06-24
        • 2023-01-09
        • 1970-01-01
        • 1970-01-01
        • 2019-05-20
        相关资源
        最近更新 更多