2011-03-13 11 views
5

Niektóre zestawy danych zawierają etykiety z pełnymi małymi literami, a kończę na wykresach i tabelach pokazujących wyniki dla "egipt", "jordan" i "saudyjska arabia" zamiast nazw oznaczonych dużą literą.Znaczniki wartości wielkich liter w Stata

Domyślam się, że funkcja ciąg znaków proper() może coś dla mnie zrobić, ale nie znajduję właściwego sposobu napisania kodu dla Stata 11, który będzie zamieniał na wielką wartość wszystkie etykiety wartości dla danej zmiennej.

Zasadniczo muszę uruchomić funkcję proper() na wszystkich etykietach wartości na zmiennej, a następnie przypisać je do zmiennej. Czy jest to możliwe przy użyciu pętli i makr w Stata?

Odpowiedz

6

Tak. Najpierw stwórzmy kilka przykładowych danych z etykiet do testowania:

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 

Oto makro wykorzystać wartości związane ze zmienną „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 
} 

Po uruchomieniu go, sprawdź wyniki:

label list types 
+0

Doskonale, dzięki! –

Powiązane problemy