SPSS中的反转选择

时间:2013-09-27 12:38:33

标签: selection spss inversion

我有一张大桌子,我需要从中放下箱子。

我只需要删除那些在2011年4月之前被拆除的房产(格式为201104)。

从其他地方的经验来看,我会把这简单化为死。

选择所有案例“EndDate< 201104”,INVERT SELECTION并将所选案例保存到新文件。

数字字段“EndDate”(拆除日期)仅为已拆除的属性填充,因此我无法执行“EndDate> 201104”。

但我无法在任何地方找到INVERT SELECTION。

也想到了

NUMERIC Flag (F1.0) .
COMPUTE Flag = 1 . 

选择所有案例“EndDate< 201104”     COMPUTE标志= 2。

然后保存     “where flag = 2” 但这适用于所有情况下的flag = 2.

有没有充分的理由说明为什么这个SIMPLE选择反转工具不可用?

2 个答案:

答案 0 :(得分:1)

如果您要选择的所有案例都缺少EndDate,则只需使用

即可

SELECT IF MISSING(EndDate).

在这里,您可以通过计算标志来选择特定情况。初始化为数字,然后将EndDate < 201104分配给其他数字,然后选择原始初始化数字。

data list free / EndDate ShouldKeep.
begin data
201101 0
201102 0
201103 0
. 1
. 1
. 1
. 1
end data.

*select if MISSING(EndDate).
*exe.

compute #flag = 0.
if (EndDate < 201104) #flag = 1.
select if #flag = 0.
exe.

您还可以将缺失的EndDate值重新编码为201104之后的日期。

答案 1 :(得分:0)

我找到了一种方法来做类似的事情: 做你的&#34;选择是否&#34;像往常一样,当您对结果感到满意时,您会添加一行重新编码。这是一个例子,我想要选择所有符合两个标准的案例(代码=&#34; 2102P11&#34;和sitzung = 4)。我对结果并不满意,这与我想要的相反。

DATASET ACTIVATE DataSet1.
USE ALL.
COMPUTE filter_$=(CODE = "2102P11" AND sitzung = 4).
VARIABLE LABELS filter_$ 'CODE = "2102P11" AND sitzung = 4 (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMATS filter_$ (f1.0).
FILTER BY filter_$.
EXECUTE.

你可以通过添加recode(进入同一个变量)来反转选择:

DATASET ACTIVATE DataSet1.
USE ALL.
COMPUTE filter_$=(CODE = "2102P11" AND sitzung = 4).
VARIABLE LABELS filter_$ 'CODE = "2102P11" AND sitzung = 4 (FILTER)'.
VALUE LABELS filter_$ 0 'Not Selected' 1 'Selected'.
FORMATS filter_$ (f1.0).
RECODE filter_$ (1=0) (0=1).
FILTER BY filter_$.
EXECUTE.