我试图在名为nbrs
的变量中找到异常值,生成一个名为nbrs_iqr
的四分位数(iqr)范围。然后我想循环(对于这个循环概念的练习)值1.5,2,5和10 in将它们乘以iqr。
我在循环中不断收到语法错误(语法r(198);)。我已经看到一些关于在值不是范围时无法执行forvalues循环的事情,但已经看到了一些示例,其中它是非范围而不是明确允许的范围。我认为这些空间可以分隔非范围值,但是我从那里抛出了手。
sum nbrs, detail
return list
gen nbrs_iqr = r(p75)-r(p25)
tab nbrs_iqr
forvalues i = 1.5 2 5 10 {
gen nbrs_out_`i'=`i'*nbrs_iqr
}
答案 0 :(得分:3)
help forvalues
清楚您可以使用的语法。您的范围无效。您可以使用foreach
,但请注意,不允许使用变量名中的.
。
一种解决方案是使用strtoname()
:
clear
set more off
sysuse auto
keep price
sum price, detail
gen nbrs_iqr = r(p75)-r(p25)
foreach i of numlist 1.5 2 5 10 {
local newi = strtoname("`i'")
gen nbrs_out`newi' = `i' * nbrs_iqr
}
describe
我的建议:熟悉help help
。