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
约定要求相关变量在数据中是连续的。
我有一个数据集(见下文),我想过滤掉麦当劳列中 只有 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
约定要求相关变量在数据中是连续的。