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   Nick Cox <[email protected]>
To   [email protected]
Subject   Re: st: RE: how to specify the decimals for output--con't
Date   Thu, 13 Oct 2011 23:17:11 +0100

-fsum- (SSC) I take to be a variant on -summarize-. The main detail in
common with this question is that you can set output format.

Nick

On Thu, Oct 13, 2011 at 9:06 PM, Alex Olssen <[email protected]> wrote:
> 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/


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