为什么我的forvalues在stata循环不起作用?

时间:2016-02-16 03:38:17

标签: stata

我试图在名为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
}

1 个答案:

答案 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