在 SPSS 中合并数据时遇到问题

Trouble merging data in SPSS

我有两个数据集,我们称它们为 D1D2D2 包含几个我想添加到 D1 的变量。 D2 本质上是来自 D1 的一组受限数据,但有一个额外的变量。问题是,我似乎无法使用 Merge,因为 Name 字符串变量已在 D2 中切换。例如,在 D1 中,变量 Name 的每个条目都读作 Word1 Word2,而在 D2 中,它读作 Word2 Word1

如何找到 D1 中也出现在 D2 中的条目,并添加它们从 D2 中丢失的变量?

很高兴在需要时使用 Python 来解决这个问题。

首先让我们创建一个工作示例:

data list list/name (a20) v1 (f1) v2(f1).
begin data
"hello world" 1 2
"huff puff" 3 4
"word1 word2" 5 6
end data.
dataset name D1.

data list list/name (a20) y1 (f1) y2(f1).
begin data
"world hello" 11 12
"puff huff" 13 14
"word2 word1" 15 16
end data.
dataset name D2.

现在我们想用name作为key来匹配两个文件,但是name中的单词在D2中是颠倒的。所以首先我们必须把它们按顺序放回去,把第二个词放在第一个词的前面:

dataset activate D2.
rename variables name=Rname.
string name #n1 #n2(a20).
compute #n2=substr(Rname,1,index(Rname," ")).
compute #n1=substr(Rname,index(Rname," ")+1,20).
compute name=concat(rtrim(#n1), " ", rtrim(#n2)).
sort cases by name.

现在我们可以继续匹配文件了:

dataset activate D1.
sort cases by name.
match files /file=* /tab=D2/by name/drop rname.
exe.