5

一部のデータセットには完全に小文字の値ラベルが付属しており、大文字の国名の代わりに「エジプト」、「ヨルダン」、「サウジアラビア」の結果を示すグラフと表が表示されます。

文字列関数は私proper()のために何かをすることができると思いますが、特定の変数のすべての値ラベルを大文字にする Stata 11 のコードを書く正しい方法を見つけていません。

基本的proper()に、変数のすべての値ラベルで関数を実行し、それらを変数に割り当てる必要があります。foreachStata でループとマクロを使用することは可能ですか?

4

1 に答える 1

6

はい。まず、テスト用のラベル付きのサンプル データをいくつか作成しましょう。

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
于 2011-03-13T18:55:16.907 に答える