将Stata循环转换为SPSS

时间:2015-04-15 08:37:50

标签: loops stata 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的范围。

1 个答案:

答案 0 :(得分:1)

您可能需要花一些时间来熟悉SPSS代码。 (你不能只是做好准备并希望它们能够正常工作!)频率的into子命令上没有选项NTILESFREQUENCIES只是输出表,它不会以任何方式转换数据。

请参阅命令RANK了解您的需求,例如:

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

不需要循环。