在SPSS中为配对行分配合作伙伴值

时间:2014-11-04 16:13:16

标签: syntax spss

想象一下有一对参与者的数据集("情侣" 1-10),每个参与者都有一个唯一的标识符("人" 1或2)。一对中的这些个体中的每一个在某个变量上具有唯一值,称之为“演员”#34;。我想写一个带有" Actor"的脚本。个人的价值,并将其放入一对名为"合作伙伴的另一个人的新变量。"通过这种方式,每个Person(行)都有自己的值(" Actor")和他们的合作伙伴的值(" Partner")。

我尝试的方法涉及重组:

SORT CASES BY Couple.
CASESTOVARS
  /ID=Couple
  /GROUPBY=VARIABLE.

COMPUTE Partner.1=Actor.2.
COMPUTE Partner.2=Actor.1.
EXECUTE.

VARSTOCASES
  /MAKE Person FROM Person.1 Person.2
  /MAKE Actor FROM Actor.1 Actor.2
  /MAKE Partner FROM Partner.1 Partner.2
  /INDEX=Index1(2) 
  /KEEP=Couple 
  /NULL=KEEP.

现在,这对于我创建的小型假设数据集非常有效。但是,我希望脚本能够处理更多变量而无需用户手动输入更多/ MAKE命令。

这样的东西?

for i in varlist[var=all]
do
VARSTOCASES
/MAKE i FROM i.1 i.2
/INDEX=Index1(2).

但那不是有效的SPSS代码。任何人都知道如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:3)

以下代码可以解决这个问题:

SORT CASES BY couple (A) Person (A).
IF (couple = LAG(couple)) partner = LAG(actor).

SORT CASES BY couple (A) Person (D).
IF (couple = LAG(couple)) partner = LAG(actor).

说明:首先,您要对某个数据集进行排序,每个参与者都会跟随其合作伙伴。然后,您可以使用LAG函数将actor的id(从上一行)复制到伙伴(第二行)合作伙伴变量中。由于SPSS中没有类似Follower的功能(我真的很想念它),你不能直接将第二行的值复制到第一行。您必须先按降序对person变量进行排序。