我有一张大桌子,我需要从中放下箱子。
我只需要删除那些在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选择反转工具不可用?
答案 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.