Stata:使用更改标题,纵向数据集循环创建图形

时间:2014-02-18 14:54:50

标签: for-loop graph stata

我在Stata中有一个纵向数据集,并希望在变量中创建每个组的单独tsline图表。所以,假设我有时间从1980年到2010年运行,类别1,2,...,17;我想创建十七个单独的tsline图表,绘制从1980年到2010年的变量X的相应值,并使用类别标签作为标题。

我写了一个创建tsline graphs的短循环,但我无法弄清楚如何添加正确的标题。标题应该是分类变量值的标签。也就是说,如果我为ID == 1绘制X,我希望标题为ID == 1的标签,如果可能的话。理想情况下,我希望为循环中的每个local存储一个特定的值标签`i'。这样,我也可以在导出图形时将它也用作文件名的一部分,例如给出。

我的代码:

tsset ID Date, daily

forvalues i = 1/17 {
tsline X if ID==`i', title(??)
}

1 个答案:

答案 0 :(得分:5)

使用扩展宏功能。这是一个例子:

clear all
set more off

sysuse auto

forvalues i = 0/1 {
    local t : label origin `i'
    display "`t'"
    twoway scatter mpg weight if foreign == `i', title("`t'")
}

origin是与变量foreign关联的值标签的名称。您可以使用label list列出所有值标签的名称和内容。

local t : label origin `i'行检索宏i中值的标签,并将其分配给宏t。然后,您可以根据需要使用宏t

请参阅help labelhelp macrohelp extended_fcn