5
某些数据集带有全小写值标签,最后以图表和表格显示“埃及”,“约旦”和“沙特阿拉伯”的结果,而不是大写的国家名称。在Stata中大写价值标签
我想proper()
字符串函数可以为我做些事情,但我没有找到正确的方式来编写Stata 11的代码,它将大写给定变量的所有值标签。
我基本上需要在变量上的所有值标签上运行proper()
函数,然后将它们分配给变量。有可能在Stata中使用foreach
循环和宏?
某些数据集带有全小写值标签,最后以图表和表格显示“埃及”,“约旦”和“沙特阿拉伯”的结果,而不是大写的国家名称。在Stata中大写价值标签
我想proper()
字符串函数可以为我做些事情,但我没有找到正确的方式来编写Stata 11的代码,它将大写给定变量的所有值标签。
我基本上需要在变量上的所有值标签上运行proper()
函数,然后将它们分配给变量。有可能在Stata中使用foreach
循环和宏?
是的。首先,让我们创建一个标签的一些样本数据来进行测试:
clear
drawnorm x, n(10)
gen byte v = int(4+x)
drop x
label define types 0 "zero" 1 "one" 2 "two" 3 "three" 4 "four" 5 "five" 6 "six"
label list types
label values v types
下面是利用与变量“v”相关联的值的宏:
local varname v
local sLabelName: value label `varname'
di "`sLabelName'"
levelsof `varname', local(xValues)
foreach x of local xValues {
local sLabel: label (`varname') `x', strict
local sLabelNew =proper("`sLabel'")
noi di "`x': `sLabel' ==> `sLabelNew'"
label define `sLabelName' `x' "`sLabelNew'", modify
}
它运行后,检查结果:
label list types
非常好,谢谢! –