在 SPSS 中合并数据时遇到问题
Trouble merging data in SPSS
我有两个数据集,我们称它们为 D1
和 D2
。 D2
包含几个我想添加到 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.
我有两个数据集,我们称它们为 D1
和 D2
。 D2
包含几个我想添加到 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.