SPSS - 根据特定标准过滤列

SPSS - Filter columns based on specific criteria

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

数据:

您只需要在所有提到的条件之间添加 "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.

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

select if any(1, RedBull to TacoBell).

或者这个:

select if sum(RedBull to TacoBell)>1.

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