Merge 在SPSS中使用表或中匹配文件

Merge 在SPSS中使用表或中匹配文件,merge,spss,Merge,Spss,在尝试将一个spss文件的变量添加到另一个spss文件时,我一直遇到错误。文件1有1.800.000个案例[付款],文件2有800.000个案例[收件人]。他们都有一个身份证号码来匹配案件 对于文件1中的每一笔付款,我想从文件2添加收件人。因此,收款人应该能够匹配多次付款 这是我一直在尝试的两个代码,它们不起作用: 在中使用的代码 当我使用/In时,我没有得到任何错误,但是文件没有正确匹配,因为它没有添加任何变量 代码使用表 当我使用/TABLE时,出现以下错误: 警告#5132 未定义错误#5

在尝试将一个spss文件的变量添加到另一个spss文件时,我一直遇到错误。文件1有1.800.000个案例[付款],文件2有800.000个案例[收件人]。他们都有一个身份证号码来匹配案件

对于文件1中的每一笔付款,我想从文件2添加收件人。因此,收款人应该能够匹配多次付款

这是我一直在尝试的两个代码,它们不起作用:

在中使用的代码 当我使用/In时,我没有得到任何错误,但是文件没有正确匹配,因为它没有添加任何变量

代码使用表 当我使用/TABLE时,出现以下错误:

警告#5132 未定义错误#5132-无法打开文本文件的:\Progra~1\spss\IBM\spss\STATIS~1\20\lang\en\spss.err”:没有这样的文件或目录


我的技巧已经用光了,不敢在Ruby中尝试,可惜excel太小了,无法处理这个问题。有什么想法吗?

我的语法看起来有什么不同:

数据集激活日期NSET1。 匹配文件/文件=* /文件class='DatenSet2' /重命名VarsToRename /凭身份证 /下降=变容 执行


也许这会有所帮助?

您的第一个解决方案是wring,因为您在子命令中错误地使用了
。换句话说,您在匹配数据集1时没有任何内容

在中,在生成的文件中创建一个新变量,该变量指示 案例来自前面文件中名为的输入文件 小组委员会

您的第二个解决方案。您正在按变量
recipientid
对数据集进行排序,但
匹配文件
是由变量
globalrecipientid
完成的。为什么按一个变量排序而按另一个变量匹配?这可能是一个问题。数据集名称应该用引号括起来

解决方案1:

DATASET ACTIVATE DataSet1. 
SORT CASES BY recipientid (A).

DATASET ACTIVATE DataSet2. 
SORT CASES BY recipientid (A).

Match Files
 /File = "DataSet1"
 /TABLE = "DataSet2" 
 /BY recipientid.

execute.
解决方案2.我从不喜欢在SPSS中实现数据集。我不信任它们。另一个解决方案是将数据集保存为文件并进行文件匹配

get "file1.sav".
SORT CASES BY recipientid (A).
save out "file1s.sav".

get "file2.sav".
SORT CASES BY recipientid (A).
save out "file2s.sav".

Match Files
 /File = "file1s.sav"
 /TABLE = "file2s.sav"
 /BY recipientid.

execute.

如果您使用内置对话框会发生什么情况?有时会产生一些不同的代码,这很有效…似乎您的SPSS安装有问题。SPSS无法打开错误消息以显示在输出中。代码较短,但结果保持不变。不,它不起作用。不过,谢谢。我想SPSS可能会在数据量-您使用的是什么版本?您能用一个小数据集(每个数据集有100个案例)进行测试吗?然后我们将查看文件大小是否为problem@ChristianSauer,它似乎是版本20(来自警告消息)。我不认为文件大小是一个问题。OP提到的文件大小对SPSS来说不应该是一个问题。
DATASET ACTIVATE DataSet1. 
SORT CASES BY recipientid (A).

DATASET ACTIVATE DataSet2. 
SORT CASES BY recipientid (A).

Match Files
 /File = "DataSet1"
 /TABLE = "DataSet2" 
 /BY recipientid.

execute.
get "file1.sav".
SORT CASES BY recipientid (A).
save out "file1s.sav".

get "file2.sav".
SORT CASES BY recipientid (A).
save out "file2s.sav".

Match Files
 /File = "file1s.sav"
 /TABLE = "file2s.sav"
 /BY recipientid.

execute.