使用表或In匹配SPSS中的文件

时间:2013-03-14 13:52:44

标签: merge spss

尝试将一个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中尝试这个,而且遗憾的是太小而无法处理这个......有什么想法吗?

2 个答案:

答案 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。

也许这有帮助?