从 SPSS 数据集中删除观察

问题描述

如果值满足,我想从我的 SPSS 中的表格中删除一些观察值,例如:

如果产品+列中的值满足,我想将其删除/使其成为SYSMIS(仅此观察,该行另一列的观察需要仍然可用,因此制作标志和临时选择是不够的)

尝试了几种方法,例如:

    RECODE VAR2(If(PRODUCT=1 AND VAR2=2000) = SYSMIS)(ELSE=copY)
EXECUTE.

 IF(PRODUCT=1 AND VAR2=2000) RECODE VAR2(SYSMIS)(ELSE=copY)
EXECUTE.

都没有用

除了从原始数据中删除观察值之外,还有其他方法可以删除观察值吗?我想避免它

解决方法

您可以通过查找一些基本的 spss 语法教程来节省大量工作。请参阅 here 以获得好的网站。

在目前的情况下,您只需要:

If PRODUCT=1 AND VAR2=2000 VAR2=$SYSMIS.

要使您的语法与 recode 一起使用,您可以这样做:

DO IF (PRODUCT=1 AND VAR2=2000).
  RECODE VAR2 (ELSE=SYSMIS).
END IF.
,

听起来您可能不想删除原始数据,而只想对数据子集进行分析。在这种情况下,请使用 SELECT IF:

SELECT IF (PRODUCT=1 AND VAR2=2000).

或者:

SELECT IF NOT (PRODUCT=1 AND VAR2=2000).

这将删除任何不符合条件的行,因此所有后续分析将仅包括符合条件的行。

如果您只想暂时过滤行 - 您可以使用 filter 命令而不是 select