将 Stata 循环转换为 SPSS

Translation of a Stata loop into SPSS

谁能帮忙翻译一下下面的 Stata 代码?我需要此代码以便在 SPSS 中进一步分析。

  gen quintile=.
  forvalues i=1/2 {
  xtile quintile`i'= income if income_num==`i', nq(5)
  replace quintile=quintile`i' if income_num==`i'
  drop quintile`i'
    }

我尝试使用以下 SPSS 代码解决问题:

COMPUTE quintile=($sysmis).

LOOP if #i = 1 to 2.
DO IF (income_num= #i).
FREQUENCIES income 
/ntiles (5) into quintile#i.
DROP = quintile #i.
END LOOP.
EXECUTE.

但是这段代码似乎是错误的。整个 SPSS 语法有错误。首先,我想知道这种特殊情况下SPSS Loop的逻辑结构。其次,请问如何将这段特殊代码与"Frequencies"命令和"Drop"命令结合起来。

你知道如何解决这个问题吗?


以下是发生的错误列表。

FREQUENCIES: LOOP 对此命令没有影响。

FREQUENCIES:转换程序包含未闭合的 LOOP、DO IF 或复杂的文件结构。使用 SPSS Statistics 命令左侧显示的控制级别来确定 LOOP 和 DO IF 的范围。

DROP: LOOP 对此命令没有影响。 DROP:行中的第一个词未被识别为 SPSS Statistics 命令。

END LOOP:END LOOP 命令不跟在未闭合的 LOOP 命令之后。可能由于错误而无法识别 LOOP 命令。使用 SPSS Statistics 命令左侧显示的控制级别来确定 LOOP 和 DO IF 的范围。

您可能需要花一些时间来熟悉 SPSS 代码。 (你不能只是编造东西并期望它们起作用!)在频率的 NTILES 子命令上没有选项 intoFREQUENCIES 只是输出表格,它不会以任何方式转换数据。

请参阅命令 RANK 了解您想要的内容,例如:

RANK VARIABLES = income BY income_num /NTILES(5) INTO quantile.

无需循环。