在 SPSS 中对数据进行排序和线性插值的循环
Loop for sorting and linear interpolating data in SPSS
我经常在按另一个变量对数据排序后使用线性插值替换 SPSS 中的缺失值。例如,我可以使用名为 Var_A_Sort 的列对数据进行排序,然后在名为 Var_A 的列中线性插入缺失值。然后,我通过使用名为 Var_B_Sort 的列对数据进行排序并在名为 Var_B 的列中线性插入缺失值来重复该过程,依此类推。以下是我用来完成该过程的语法。
SORT CASES BY Var_A_Sort (A).
EXECUTE.
RMV
/Var_A=LINT(Var_A).
EXECUTE.
SORT CASES BY Var_B_Sort (A).
EXECUTE.
RMV
/Var_B=LINT(Var_B).
EXECUTE.
我经常使用 SPSS 中的宏为列表中的变量重复任务(如下例)。但是我不确定如何在 SPSS 语法中创建宏或在 Python 中编写代码,这些代码可用于完成上述任务。
DEFINE !RegLoop (Ylist = !CMDEND)
!DO !Y !IN(!Ylist)
RMV
/!Y=LINT(!Y).
EXECUTE.
!DOEND
!ENDDEFINE.
!RegLoop Ylist = Var_A Var_B.
在宏中使用!concat
即可解决问题。
如果您这样定义宏,则可以保留原始宏调用:
DEFINE !RegLoop (Ylist = !CMDEND)
!DO !Y !IN(!Ylist)
SORT CASES BY !concat(!Y, "_Sort") (A).
RMV / !Y = LINT( !Y ).
!DOEND
EXECUTE.
!ENDDEFINE.
!RegLoop Ylist = var_A var_B .
但您可以使用 !concat
编写具有更复杂变量名的更灵活的宏。例如:
DEFINE !RegLoop (Ylist = !CMDEND)
!DO !Y !IN(!Ylist)
SORT CASES BY !concat("Var_", !Y, "_Sort") (A).
RMV / !concat("Var_", !Y) = LINT( !concat("Var_", !Y) ).
!DOEND
EXECUTE.
!ENDDEFINE.
!RegLoop Ylist = A B .
我经常在按另一个变量对数据排序后使用线性插值替换 SPSS 中的缺失值。例如,我可以使用名为 Var_A_Sort 的列对数据进行排序,然后在名为 Var_A 的列中线性插入缺失值。然后,我通过使用名为 Var_B_Sort 的列对数据进行排序并在名为 Var_B 的列中线性插入缺失值来重复该过程,依此类推。以下是我用来完成该过程的语法。
SORT CASES BY Var_A_Sort (A).
EXECUTE.
RMV
/Var_A=LINT(Var_A).
EXECUTE.
SORT CASES BY Var_B_Sort (A).
EXECUTE.
RMV
/Var_B=LINT(Var_B).
EXECUTE.
我经常使用 SPSS 中的宏为列表中的变量重复任务(如下例)。但是我不确定如何在 SPSS 语法中创建宏或在 Python 中编写代码,这些代码可用于完成上述任务。
DEFINE !RegLoop (Ylist = !CMDEND)
!DO !Y !IN(!Ylist)
RMV
/!Y=LINT(!Y).
EXECUTE.
!DOEND
!ENDDEFINE.
!RegLoop Ylist = Var_A Var_B.
在宏中使用!concat
即可解决问题。
如果您这样定义宏,则可以保留原始宏调用:
DEFINE !RegLoop (Ylist = !CMDEND)
!DO !Y !IN(!Ylist)
SORT CASES BY !concat(!Y, "_Sort") (A).
RMV / !Y = LINT( !Y ).
!DOEND
EXECUTE.
!ENDDEFINE.
!RegLoop Ylist = var_A var_B .
但您可以使用 !concat
编写具有更复杂变量名的更灵活的宏。例如:
DEFINE !RegLoop (Ylist = !CMDEND)
!DO !Y !IN(!Ylist)
SORT CASES BY !concat("Var_", !Y, "_Sort") (A).
RMV / !concat("Var_", !Y) = LINT( !concat("Var_", !Y) ).
!DOEND
EXECUTE.
!ENDDEFINE.
!RegLoop Ylist = A B .