2011-03-13 15 views
5

में मूल्य लेबल को कैपिटल करना कुछ डेटासेट पूर्ण-लोअरकेस मान लेबल के साथ आते हैं, और मैं पूंजीकृत देश के नामों के बजाय "मिस्र", "जोर्डन" और "सऊदी अरब" के परिणाम दिखाते हुए ग्राफ और तालिकाओं के साथ समाप्त होता हूं।स्टाटा

मुझे लगता है कि proper() स्ट्रिंग फ़ंक्शन मेरे लिए कुछ कर सकता है, लेकिन मुझे स्टेटा 11 के लिए कोड लिखने का सही तरीका नहीं मिल रहा है जो किसी दिए गए चर के लिए सभी मान लेबल को कैपिटल करेगा।

मुझे मूल रूप से चर पर सभी मूल्य लेबल पर proper() फ़ंक्शन चलाने की आवश्यकता है, और फिर उन्हें चर के लिए असाइन करें। क्या यह foreach लूप और स्टेटा में मैक्रोज़ का उपयोग कर संभव है?

उत्तर

6

हां। पहले के परीक्षण के लिए लेबल के साथ नमूना डेटा बना सकते हैं:

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 
} 

यह चलाने के बाद, जांच के परिणाम::

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 

यहाँ चर "वी" के साथ जुड़े मूल्यों फायदा उठाने में कोई मैक्रो है

label list types 
+0

उत्कृष्ट, धन्यवाद! –