Bookmark and Share

Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.


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

Re: st: RE: how to specify the decimals for output--con't


From   Alex Olssen <[email protected]>
To   [email protected]
Subject   Re: st: RE: how to specify the decimals for output--con't
Date   Fri, 14 Oct 2011 09:06:06 +1300

Have you tried -fsum-?

http://ideas.repec.org/c/boc/bocode/s426501.html

I think it does what you want.

On 14 October 2011 06:18, Nick Cox <[email protected]> wrote:
> For examples, we read in
>
> . sysuse auto, clear
> (1978 Automobile Data)
>
> What you say about -fre- (Ben Jann, SSC) is incorrect.
>
> -fre- is explicit that it is for one-way tables, but you can call it with -by:-:
>
> . bysort foreign : fre rep78
>
> -> foreign = Domestic
>
> rep78 -- Repair Record 1978
> -----------------------------------------------------------
>              |      Freq.    Percent      Valid       Cum.
> --------------+--------------------------------------------
> Valid   1     |          2       3.85       4.17       4.17
>        2     |          8      15.38      16.67      20.83
>        3     |         27      51.92      56.25      77.08
>        4     |          9      17.31      18.75      95.83
>        5     |          2       3.85       4.17     100.00
>        Total |         48      92.31     100.00
> Missing .     |          4       7.69
> Total         |         52     100.00
> -----------------------------------------------------------
>
> -> foreign = Foreign
>
> rep78 -- Repair Record 1978
> -----------------------------------------------------------
>              |      Freq.    Percent      Valid       Cum.
> --------------+--------------------------------------------
> Valid   3     |          3      13.64      14.29      14.29
>        4     |          9      40.91      42.86      57.14
>        5     |          9      40.91      42.86     100.00
>        Total |         21      95.45     100.00
> Missing .     |          1       4.55
> Total         |         22     100.00
> -----------------------------------------------------------
>
> What you say about -groups- is also incorrect for the same reason. As the help explains,
>
> "by ...: may be used with groups; see help by.  Note in particular that this is the key to
>    controlling how percents are calculated; that is, under by percents sum to 100 within
>    distinct categories defined by its varlist."
>
> As you say, by default percents are just for the whole table.
>
> . groups for rep78
>
>  +------------------------------------+
>  |  foreign   rep78   Freq.   Percent |
>  |------------------------------------|
>  | Domestic       1       2      2.90 |
>  | Domestic       2       8     11.59 |
>  | Domestic       3      27     39.13 |
>  | Domestic       4       9     13.04 |
>  | Domestic       5       2      2.90 |
>  |------------------------------------|
>  |  Foreign       3       3      4.35 |
>  |  Foreign       4       9     13.04 |
>  |  Foreign       5       9     13.04 |
>  +------------------------------------+
>
> But applying -by:- gives you conditional percents:
>
> . bysort for: groups rep78, format(%2.1f)
>
> -> foreign = Domestic
>
>  +---------------------------------+
>  | rep78   Freq.   Percent    Cum. |
>  |---------------------------------|
>  |     1       2       4.2     4.2 |
>  |     2       8      16.7    20.8 |
>  |     3      27      56.3    77.1 |
>  |     4       9      18.8    95.8 |
>  |     5       2       4.2   100.0 |
>  +---------------------------------+
>
> -> foreign = Foreign
>
>  +---------------------------------+
>  | rep78   Freq.   Percent    Cum. |
>  |---------------------------------|
>  |     3       3      14.3    14.3 |
>  |     4       9      42.9    57.1 |
>  |     5       9      42.9   100.0 |
>  +---------------------------------+
>
>
> There is an undocumented -nby()- option that gives a more compact display:
>
> . groups foreign rep78, format(%2.1f) nby(1)
>
>  +------------------------------------+
>  |  foreign   rep78   Freq.   Percent |
>  |------------------------------------|
>  | Domestic       1       2       4.2 |
>  | Domestic       2       8      16.7 |
>  | Domestic       3      27      56.3 |
>  | Domestic       4       9      18.8 |
>  | Domestic       5       2       4.2 |
>  |------------------------------------|
>  |  Foreign       3       3      14.3 |
>  |  Foreign       4       9      42.9 |
>  |  Foreign       5       9      42.9 |
>  +------------------------------------+
>
>
> Nick
> [email protected]
>
> Lan Zhang
>
> Thanks so much for your responses (see below) for my problems. Now I
> want to calculate either row or column percentages (usually I use 'tab
> var1 var2, row/col', and by default it gives the percentages with two
> decimals), and would also like to output one decimal (or maybe three
> or four) for each value. It seems the 'fre' and 'groups' can't do
> this. They could only give the percentages out of total N.
>
>
>> Date: Wed, 12 Oct 2011 10:06:20 -0500
>> From: Lan Zhang <[email protected]>
>> Subject: st: how to specify the decimals for output
>>
>> When use 'tab var' for frequencies of categorical variables, Stata
>> gives the percentages of two decimals. I wanna just one decimal. How
>> to change it? I didn't find any optional commands that has this
>> function. If I can't achieve this from the 'tab' command, how could I
>> do it using other command that may also give the percentages of the
>> categories.
>>
>
>> Date: Wed, 12 Oct 2011 11:55:04 -0400
>> From: Austin Nichols <[email protected]>
>> Subject: Re: st: how to specify the decimals for output
>>
>> Lan Zhang <[email protected]> :
>>
>> ssc inst fre
>> sysuse auto, clear
>> fre rep78, f(1) nomiss
>>
>> On Wed, Oct 12, 2011 at 11:06 AM, Lan Zhang <[email protected]> wrote:
>>> When use 'tab var' for frequencies of categorical variables, Stata
>>> gives the percentages of two decimals. I wanna just one decimal. How
>>> to change it? I didn't find any optional commands that has this
>>> function. If I can't achieve this from the 'tab' command, how could I
>>> do it using other command that may also give the percentages of the
>>> categories.
>> *
>
>> Date: Wed, 12 Oct 2011 17:59:48 +0100
>> From: Nick Cox <[email protected]>
>> Subject: Re: st: how to specify the decimals for output
>>
>> Also
>>
>> ssc inst groups
>> sysuse auto
>> groups foreign, format(%2.1f)
>>
>>  +------------------------------------+
>>  |  foreign   Freq.   Percent    Cum. |
>>  |------------------------------------|
>>  | Domestic      52      70.3    70.3 |
>>  |  Foreign      22      29.7   100.0 |
>>  +------------------------------------+
>>
>> - -fre- is spectacular for one-way tabulation.
>>
>> - -groups- can do n-way tables, but always collapsed to one dimension.
>>
>> Nick .
>>
>> On Wed, Oct 12, 2011 at 4:55 PM, Austin Nichols <[email protected]> wrote:
>>> Lan Zhang <[email protected]> :
>>>
>>> ssc inst fre
>>> sysuse auto, clear
>>> fre rep78, f(1) nomiss
>>>
>>> On Wed, Oct 12, 2011 at 11:06 AM, Lan Zhang <[email protected]> wrote:
>>>> When use 'tab var' for frequencies of categorical variables, Stata
>>>> gives the percentages of two decimals. I wanna just one decimal. How
>>>> to change it? I didn't find any optional commands that has this
>>>> function. If I can't achieve this from the 'tab' command, how could I
>>>> do it using other command that may also give the percentages of the
>>>> categories.
>> *
>
> *
> *   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index