如何迭代不同变量的图?

时间:2019-07-18 17:19:57

标签: iteration stata stata-macros

我有以下代码:

hist house1 if house1 >0 & house1 <200000, bin(25) fraction by(Year) 

graph export house1.png, replace

我想用house1car1来代替bed1var = "house1" hist var if house1 >0 & house1 <200000, bin(25) fraction by(Year) graph export var.png, replace 来进行迭代,而无需复制粘贴代码并替换,或者至少是类似的东西:

var

这样我就可以只更改分配给{{1}}的值。

1 个答案:

答案 0 :(得分:1)

一个简单的foreach循环将起作用:

foreach x in house1 car1 bed1 {
    display "hist `x' if `x' >0 & `x' <200000, bin(25) fraction by(Year)"
    display "graph export `x'.png, replace"
}

hist house1 if house1 >0 & house1 <200000, bin(25)fraction by(Year)
graph export house1.png, replace
hist car1 if car1 >0 & car1 <200000, bin(25)fraction by(Year)
graph export car1.png, replace
hist bed1 if bed1 >0 & bed1 <200000, bin(25)fraction by(Year)
graph export bed1.png, replace

这里x是一个本地宏,它获取foreach中指定的值。

请注意,display命令仅作说明之用。