如何迭代不同变量的图?

How to iterate plot over different variables?

我有以下代码:

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

graph export house1.png, replace

我想迭代它,用 car1bed1 替换 house1,而不复制粘贴代码并替换,或者至少像:

var = "house1"

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

graph export var.png, replace

这样我就可以只更改分配给 var 的值。

一个简单的 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命令用于说明,不是必需的。