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

For loop Stata:使用更改标题创建循环图,纵向数据集,for-loop,graph,stata,For Loop,Graph,Stata,我在Stata中有一个纵向数据集,希望在变量中为每个组创建单独的tsline图。比如说,我有时间从1980年到2010年,第1,2,…,17类;我想创建17个独立的tsline图,绘制1980年至2010年变量X的各自值,并使用类别标签作为标题 我写了一个简短的循环来创建tsline图,但我不知道如何添加正确的标题。标题应该是分类变量值的标签。也就是说,如果我为ID==1绘制X,如果可能的话,我希望标题是ID==1的标签。理想情况下,我希望为循环中的每个`I'存储一个特定的值标签作为local。

我在Stata中有一个纵向数据集,希望在变量中为每个组创建单独的
tsline
图。比如说,我有时间从1980年到2010年,第1,2,…,17类;我想创建17个独立的
tsline
图,绘制1980年至2010年变量X的各自值,并使用类别标签作为标题

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

我的代码:

tsset ID Date, daily

forvalues i = 1/17 {
tsline X if ID==`i', title(??)
}
使用扩展宏函数。以下是一个例子:

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
关联的值标签的名称。您可以使用
标签列表
列出所有值标签的名称和内容

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

请参见
帮助标签
帮助宏
帮助扩展功能

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

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
关联的值标签的名称。您可以使用
标签列表
列出所有值标签的名称和内容

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


请参见
帮助标签
帮助宏
帮助扩展

注意,诸如
本地t:label(foreign)`i'
之类的语法消除了查找值标签名称的需要。请注意,诸如
本地t:label(foreign)`i'
之类的语法消除了查找值标签名称的需要。