我正在尝试重新创建Excel"索引(,, Match())" SPSS中的功能。我的数据组织如下:
"职位"变量表示"值"中的值(T:V)是什么列。变量应该去。
在第1行中,位置按顺序为1-3,因此列T:V中的值与"值"的顺序相同。变量。
第二排的位置是2,3,1;所以" Value1"中的值应该进入U列(最后一个变量块中的第二列)," Value2"应该在V列中,并且"值3中的值应该在T列中。依此类推。
在SPSS,SPSS'索引和匹配功能无济于事。
是否有任何Excel / SPSS用户知道如何使用语法在SPSS中完成此操作?
答案 0 :(得分:1)
可能有几种方法可以解决这个问题,具体取决于你要处理的列数以及它们是否都是数字或者是否有字符串(可能存在矩阵代数答案,我只是想不到它)。
如果你只有3组3列,最简单的方法是编写9(3 * 3)if语句(你没有cols T / U / V的列名,所以我只是引用他们的Excel列):
if (Position1 = 1) T = Value1.
if (Position1 = 2) T = Value2.
if (Position1 = 3) T = Value3.
if (Position2 = 1) U = Value1.
if (Position2 = 2) U = Value2.
...
这应该有效。如果您有更多列,您还可以使用向量循环来定义变量集。
答案 1 :(得分:1)
这是一种可扩展的方法:
vector match(3).
do repeat p = position1 to position3 / v= value1 to value3 / y = #y1 to #y3.
compute y = v*p.
end repeat.
loop #i = 1 to 3.
compute match(#i) = any(#i, #y1 to #y3).
end loop.
exe.