1

簡単な SPSS の質問であることを願っています。以下の構文を使用してテーブル マージを実行した場合、"bigfile" と "smallfile" の両方に変数 [たとえば ChildID] の値がある場合、'mergefile' には smallfile または bigfile の ChildID の値がありますか?

Match files files=bigfile
/table=smallfile
/by JoinID.
dataset name mergefile.
execute.

どうもありがとうございました。-ダン

4

1 に答える 1

1

細かいマニュアルから:

ファイルが指定される順序によって、新しいアクティブなデータセット内の変数の順序が決まります。また、同じ変数名が複数の入力ファイルに存在する場合、変数は最初に指定されたファイルから取得されます。

したがって、これは、特定の例では、 にChildIDあった値であることを示しているはずです。bigfile確認するためにこれを示しましょう。

data list free /JoinID ChildID X.
begin data
1 1 4
1 1 5
1 1 6
1 1 7
2 2 8
2 2 9
3 3 2
3 3 1
end data.
dataset name bigfile.

data list free /JoinID ChildID Y.
begin data
1 5 4
2 5 8
3 5 2
end data.
dataset name smallfile.


match files file = 'bigfile'
/table = 'smallfile'
/by JoinID.
dataset name mergefile.
list ALL.

出力を生成します。

JoinID ChildID XY

1.00     1.00     4.00     4.00
1.00     1.00     5.00     4.00
1.00     1.00     6.00     4.00
1.00     1.00     7.00     4.00
2.00     2.00     8.00     8.00
2.00     2.00     9.00     8.00
3.00     3.00     2.00     2.00
3.00     3.00     1.00     2.00

rename一致ファイルのサブコマンド (dropおよび) にも関心があるかもしれませんkeep(上書きを防ぐため、または最終的な変数をどのファイルから取得するかを指定するため)。ファイルが異なる長さの文字列である場合、ファイルはマージされないため、私のワークフローは通常、ファイルの 1 つからケースを削除します。


rename および drop サブコマンドの使用例を以下に示します (上記と同じサンプル データを使用)。これにより、必要に応じて後続のファイルの値を保持できます。

match files file = 'bigfile'
/rename = (ChildId = Old)
/table = 'smallfile'
/by JoinID
/drop Old.
dataset name mergefile2.
list ALL.
于 2013-02-13T13:35:16.050 に答える