SPSS表与两个数据集中存在的额外变量合并:保留哪个值



我希望这是一个简单的SPSS问题。如果我使用下面的语法进行表合并,但"bigfile"one_answers"smallfile"都有某个变量的值[比如ChildID],那么"mergefile"的ChildID值是来自smallfile还是来自bigfile?

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

非常感谢。-Dan

来自精细手册:

指定文件的顺序决定了新活动数据集中的变量。此外,如果相同的变量name出现在多个输入文件中,变量取自首先指定的文件。

因此,对于您的特定示例,这应该表明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 X Y

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子命令(以及dropkeep)感兴趣(以防止重写或指定最终变量来自哪个文件)。我的工作流程通常会从其中一个文件中删除案例,因为如果文件是不同长度的字符串,它们就不会合并。


下面是使用重命名和删除子命令的示例(使用与上面相同的示例数据)。这将允许您保留后续文件中的值(如果您喜欢的话)。

match files file = 'bigfile'
/rename = (ChildId = Old)
/table = 'smallfile'
/by JoinID
/drop Old.
dataset name mergefile2.
list ALL.

最新更新