有人可以帮助翻译以下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的范围。
答案 0 :(得分:1)
您可能需要花一些时间来熟悉SPSS代码。 (你不能只是做好准备并希望它们能够正常工作!)频率的into
子命令上没有选项NTILES
。 FREQUENCIES
只是输出表,它不会以任何方式转换数据。
请参阅命令RANK
了解您的需求,例如:
RANK VARIABLES = income BY income_num /NTILES(5) INTO quantile.
不需要循环。