我想从我的SPSS表中删除一些观察值,如果值满足,例如:
如果product + value从列满足,我想删除它/使其为SYSMIS(只有这个观测值,这一行的另一列的观测值仍然需要可用,所以make标志和临时选择是不够的)
尝试了以下几种方法:
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语法教程来节省很多工作。这里有一个不错的网站。
在目前的情况下,你所需要的是:
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
。