Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: RE: RE: Labeling Min and Max Values


From   "Eric Booth" <ebooth@ppri.tamu.edu>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: RE: Labeling Min and Max Values
Date   Fri, 5 Mar 2010 17:26:10 -0600

>
I interpreted Lauren's question differently than Martin-though I'm still not certain exactly how Lauren want's her output broken down.  Here it is using Martin's example and -tabout- to get the max and min growth by country (across all years) and by country & year:


*******
clear*
set obs 50
gen byte country=_n

la def coun ///
1       "Afghanistan     " ///          
2       "Albania         " ///          
3       "Algeria         " ///          
4       "Andorra         " ///          
5       "Angola          " ///          
6       "Anguilla        " ///          
7       "Antarctica      " ///          
8       "Argentina       " ///          
9       "Armenia         " ///          
10      "Aruba          " ///          
11      "Australia      " ///          
12      "Austria        " ///          
13      "Azerbaijan     " ///          
14      "Bahrain        " ///          
15      "Bangladesh     " ///          
16      "Barbados       " ///          
17      "Bassas da India" ///          
18      "Belarus        " ///          
19      "Belgium        " ///          
20      "Belize         " ///          
21      "Benin          " ///          
22      "Bermuda        " ///          
23      "Bhutan         " ///          
24      "Bolivia        " ///          
25      "Bosnia and Herzegovina        " ///          
26      "Botswana       " ///          
27      "Bouvet Island  " ///          
28      "Brazil         " ///          
29      "British Indian Ocean Territory" ///          
30      "British Virgin Islands        " ///          
31      "Brunei         " ///          
32      "Bulgaria       " ///          
33      "Burkina Faso   " ///          
34      "Burma          " ///          
35      "Burundi        " ///          
36      "Cambodia       " ///          
37      "Cameroon       " ///          
38      "Canada         " ///          
39      "Cape Verde     " ///          
40      "Cayman Islands " ///          
41      "Central African Republic      " ///          
42      "Chad           " ///          
43      "Chile          " ///          
44      "China          " ///          
45      "Christmas Island              " ///          
46      "Clipperton Island             " ///          
47      "Cocos          " ///
48      "Colombia       " ///          
49      "Comoros        " ///          
50      "Cook Islands   " ///              


la val country coun
expand 5
bys country: gen year= 2000 + _n

gen growth=rnormal(.01,.03)


**across all years**
tabout country year using "test.xls", replace sum c(min growth max growth) /*
  */  h2(min/max by country and year) npos(lab) nlab((n=#)) lines(double) f(5c)

**by year for each country**
	cap erase "test_byyear.xls"
forval y = 2001/2005 {
	tabout country  if year==`y' using "test_byyear.xls", append sum c(min growth max growth) /*
   */     h3(min/max by country in `y') npos(lab) nlab((n=#)) lines(double) f(5c)
}
********

You could sort these lists, but if you want to constrain the list to the max growth rate by country, by year, or by both country and year, you could create an indicator, similar to Martin's example, for the min and the max and then in the -tabout- command above  just include an "if" statement, so add this to the code above:

**
bys year: egen locmax=max(growth)
bys year: egen locmin=min(growth)

bys year: gen min=1 if growth==locmin
bys year: gen max= 1 if growth == locmax

*w/tabstat:
tabstat growth if min==1, by(country) stat(min)
tabstat growth if max==1, by(country)  stat(max)

**across all years**
cap erase "test2_min.xls"
cap erase "test2_max.xls"

foreach v in min max {
forval y = 2001/2005 {
tabout country if `v'==1 & year==`y' using "test2_`v'.xls", sum append c( `v' growth ) /*
*/  f(5c) h3(`v' by country for year `y') npos(lab) nlab((n=#)) lines(double)
    }
 }
**


__
Eric A. Booth
Public Policy Research Institute
Texas A&M University
ebooth@ppri.tamu.edu
+979.845.6754




-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu on behalf of Martin Weiss
Sent: Fri 3/5/2010 3:32 PM
To: statalist@hsphsun2.harvard.edu
Subject: st: RE: Labeling Min and Max Values
 

<>

You might even end up using -list- for this purpose:


*******
clear*
set obs 50
gen byte country=_n

la def coun ///
1	"Afghanistan                    " ///           
2	"Albania                        " ///           
3	"Algeria                        " ///           
4	"Andorra                        " ///           
5	"Angola                         " ///           
6	"Anguilla                       " ///           
7	"Antarctica                     " ///           
8	"Argentina                      " ///           
9	"Armenia                        " ///           
10	"Aruba                         " ///           
11	"Australia                     " ///           
12	"Austria                       " ///           
13	"Azerbaijan                    " ///           
14	"Bahrain                       " ///           
15	"Bangladesh                    " ///           
16	"Barbados                      " ///           
17	"Bassas da India               " ///           
18	"Belarus                       " ///           
19	"Belgium                       " ///           
20	"Belize                        " ///           
21	"Benin                         " ///           
22	"Bermuda                       " ///           
23	"Bhutan                        " ///           
24	"Bolivia                       " ///           
25	"Bosnia and Herzegovina        " ///           
26	"Botswana                      " ///           
27	"Bouvet Island                 " ///           
28	"Brazil                        " ///           
29	"British Indian Ocean Territory" ///           
30	"British Virgin Islands        " ///           
31	"Brunei                        " ///           
32	"Bulgaria                      " ///           
33	"Burkina Faso                  " ///           
34	"Burma                         " ///           
35	"Burundi                       " ///           
36	"Cambodia                      " ///           
37	"Cameroon                      " ///           
38	"Canada                        " ///           
39	"Cape Verde                    " ///           
40	"Cayman Islands                " ///           
41	"Central African Republic      " ///           
42	"Chad                          " ///           
43	"Chile                         " ///           
44	"China                         " ///           
45	"Christmas Island              " ///           
46	"Clipperton Island             " ///           
47	"Cocos                         " ///
48	"Colombia                      " ///           
49	"Comoros                       " ///           
50	"Cook Islands                  " ///               


la val country coun

expand 5
bys country: gen byte year=_n

gen growth=rnormal(.01,.03)

bys year: egen locmax=max(growth)
by year: egen locmin=min(growth)

bys year (growth): gen byte min=_n==1
by year (growth): gen byte max=_n==_N

la def max 0 "" 1"max"
la def min 0 "" 1 "min"
la val max max
la val min min

replace locmax=. if min
replace locmin=. if max

li year country max min locmax locmin /* 
 */  if min | max, sepby(year) noo
*******


HTH
Martin

-----Original Message-----
From: owner-statalist@hsphsun2.harvard.edu
[mailto:owner-statalist@hsphsun2.harvard.edu] On Behalf Of e. lauren
Sent: Freitag, 5. März 2010 21:15
To: statalist@hsphsun2.harvard.edu
Subject: st: Labeling Min and Max Values


Hi all:

 

A pretty straightforward question, but how does one label corresponding Min
and Max values (using tabout or another tabulate command).

 

Let's say I have a list of 50 countries and corresponding GDP growth rates,
over time.  I would like to use tabout to label the local minimums and
maximums, and indicate the corresponding country name for each given year. 

 

Any tips on how to set this up?

 

Many thanks,
Lauren
*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/

<<winmail.dat>>



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index