尝试将一个spss文件的变量添加到另一个spss文件时,我一直遇到错误。文件1有1.800.000例[付款],文件2有800.000例[收件人]。他们都有一个ID号码来匹配案件。
对于文件1中的每笔付款,我想从文件2添加收件人。因此,收件人应能够匹配多笔付款。
这是我一直在尝试的两个代码,它们不起作用:
使用IN 的 DATASET ACTIVATE DataSet1.
SORT CASES BY recipientid(A).
DATASET ACTIVATE DataSet2.
SORT CASES BY recipientid(A).
Match Files /File=DataSet1
/In=DataSet2
/BY globalrecipientid.
execute
当我使用/ In时,我没有收到任何错误,但文件没有正确匹配sin,它不会添加任何变量。
使用TABLE 的 DATASET ACTIVATE DataSet1.
SORT CASES BY recipientid(A).
DATASET ACTIVATE DataSet2.
SORT CASES BY recipientid(A).
Match Files /File=DataSet1
/TABLE=DataSet2
/BY globalrecipientid.
execute
当我使用/ TABLE时,我收到以下错误:
警告#5132 未定义错误#5132 - 无法打开文本文件'S:\ Progra~1 \ spss \ IBM \ SPSS \ STATIS~1 \ 20 \ lang \ en \ spss.err“:没有这样的文件或目录
我已经用完了一些技巧,不敢在Ruby中尝试这个,而且遗憾的是太小而无法处理这个......有什么想法吗?
答案 0 :(得分:1)
您的第一个解决方案是wring,因为您错误地使用了IN
子命令。换句话说,您将数据集1与任何内容匹配。
IN在结果文件中创建一个新变量,指示是否 一个案例来自前面文件中命名的输入文件 子命令。
你的第二个解决方案。您按变量recipientid
对数据集进行排序,但match files
由变量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.
答案 1 :(得分:0)
我的语法看起来有点不同:
DATASET ACTIVATE DatenSet1。 匹配文件/文件= * / FILE = 'DatenSet2' / RENAME VarsToRename / BY ID / DROP = Vars EXECUTE。
也许这有帮助?