1

ケースを削除する必要がある大きなテーブルがあります。

2011 年 4 月より前に取り壊された物件のみを削除する必要があります (201104 としてフォーマットされています)。

他の場所での経験から、私はこれが非常に単純であると予想しています.

すべてのケース「where EndDate < 201104」を選択し、選択を反転して、選択したケースを新しいファイルに保存します。

数値フィールド "EndDate" (解体の日付) は、解体されたプロパティに対してのみ入力されるため、"where EndDate > 201104" を行うことはできません。

しかし、INVERT SELECTION がどこにも見つかりません。

も考えた

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

「endDate < 201104」のすべてのケースを選択します COMPUTE Flag = 2 。

次に「where flag = 2」を保存しますが、これはすべてのケースに flag = 2 を適用します。

この SIMPLE 選択反転ツールが利用できない正当な理由はありますか?

4

2 に答える 2

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 より後の日付に再コーディングすることもできます。

于 2013-09-27T13:20:36.490 に答える
0

私は似たようなことをする方法を見つけました.いつものように「select if」を行い、結果があなたが望むものの否定として満足しているときは、recodeの行を追加します. これは、2 つの基準 (コード = "2102P11" およびシッツング = 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.
于 2016-01-04T14:04:00.853 に答える