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
非常好,謝謝! –