細かいマニュアルから:
ファイルが指定される順序によって、新しいアクティブなデータセット内の変数の順序が決まります。また、同じ変数名が複数の入力ファイルに存在する場合、変数は最初に指定されたファイルから取得されます。
したがって、これは、特定の例では、 に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.