如何在 SPSS 中重新创建 Excel 的 "Index(,,Match())" 函数?
How to recreate Excel's "Index(,,Match())" function in SPSS?
我正在尝试在 SPSS 中重新创建 Excel 的 "Index(,,Match())" 函数。我的数据组织如下:
"Position" 变量指示 "Value" 变量中的值应该放在哪一列 (T:V)。
在第 1 行中,位置顺序为 1-3,因此 T:V 列中的值与 "Value" 变量的顺序相同。
第二行的位置是2,3,1;所以 "Value1" 中的值应该放在 U 列(最后一个变量块的第二列),"Value2" 中的值应该放在 V 列中,“值 3”中的值应该放在在 T 列中。依此类推。
在研究了在 SPSS 中执行此操作后,SPSS 的索引和匹配功能将无济于事。
有 Excel/SPSS 用户知道如何在 SPSS 中使用语法完成此操作吗?
可能有几种方法可以解决这个问题,具体取决于您要处理的列数以及它们是否都是数字或者是否有字符串(可能有矩阵代数答案,我只是不能想想看)。
如果您只有 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.
...
这应该有效。如果你有更多的列,你也可以使用向量循环来定义变量集。
这是一种可扩展的方法:
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.
我正在尝试在 SPSS 中重新创建 Excel 的 "Index(,,Match())" 函数。我的数据组织如下:
"Position" 变量指示 "Value" 变量中的值应该放在哪一列 (T:V)。
在第 1 行中,位置顺序为 1-3,因此 T:V 列中的值与 "Value" 变量的顺序相同。
第二行的位置是2,3,1;所以 "Value1" 中的值应该放在 U 列(最后一个变量块的第二列),"Value2" 中的值应该放在 V 列中,“值 3”中的值应该放在在 T 列中。依此类推。
在研究了在 SPSS 中执行此操作后,SPSS 的索引和匹配功能将无济于事。
有 Excel/SPSS 用户知道如何在 SPSS 中使用语法完成此操作吗?
可能有几种方法可以解决这个问题,具体取决于您要处理的列数以及它们是否都是数字或者是否有字符串(可能有矩阵代数答案,我只是不能想想看)。
如果您只有 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.
...
这应该有效。如果你有更多的列,你也可以使用向量循环来定义变量集。
这是一种可扩展的方法:
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.