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

# Re: st: RE: tabstat upside down

 From Richard Goldstein <[email protected]> To [email protected] Subject Re: st: RE: tabstat upside down Date Wed, 27 Apr 2011 08:15:21 -0400

```thanks for the various suggestions; I have what I wanted

Rich

On 4/26/11 6:40 PM, Nick Cox wrote:
> Good suggestions. Here is another way. The first part just fabricates data.
>
> clear
> set obs 100
> gen acuteall = runiform()
> forval j = 1/30 {
> 	local split = runiform()
> 	gen e`j' = runiform() < `split'
> }
>
> matrix averages = J(30,2,.)
> forval j = 1/2 {
> 	local J = `j' - 1
> 	forval i = 1/30 {
> 		su acuteall if e`i' == `J', meanonly
> 		matrix averages[`i', `j'] = r(mean)
> 	}
> }
> mat colname averages = 0 1
> mat li averages, format(%4.3f)
>
>
> On Tue, Apr 26, 2011 at 10:07 PM, Eric Booth <[email protected]> wrote:
>
>> I'm not sure I completely follow, but for a dataset that looks something like:
>> *********************begin example
>> clear
>> set obs 1000
>> g acuteall = rbinomial(1, .4)
>> forval n = 1/30 {
>>        g e`n' = rbinomial(1, .4)
>>        }
>> sa "test.dta", replace
>> ****
>> /*
>> you say you want a" summary comparing the mean acuteall for each category of each of e1 thru e30..."
>> yet, e1-e30 are not categories.  I interpret this to mean you want the mean of acuteall when e1 ==1 and
>> then e2==1 and so on, like:
>> */
>> su acuteall if e1==1
>> di "`r(mean)'"  //notice this equals the first obs in the collapsed data below
>>
>> **but for all vars...so you could collapse like:
>> g id = _n
>> reshape long e, i(id) j(ee )
>> keep if e==1
>> collapse (mean) acuteall,  by(ee)
>> **to get the mean of acute all where e* == 1
>> **now, you can list, outsheet, texsave etc this dataset as a table
>>
>>
>> **OR**
>> ****** maybe you want something more like tabout(from SSC) has to offer(?):
>> u test.dta, clear
>> tabout e* using "test.txt", sum oneway ///
>>        replace c(mean acuteall)
>> type "test.txt"
>>
>> tabout e* acuteall using "test2.txt", ///
>>        replace c(col) f(1p)
>> type "test2.txt"
>> ********************end example
>
> Richard Goldstein [[email protected]]
>
>> I have 30 binary variables (e1-e30) and I have another yes/no (0/1)
>> variable called acuteall; I want to supply my client with an easy to
>> follow summary comparing the mean acuteall for each category of each of
>> e1 thru e30; -tabstat-, however, supplies me with the mean of each of e1
>> thru e30 for each category of acuteall (command: -tabstat e1-e30,
>> by(acuteall)-)
>>
>> in other words, in the following table, I want to see .122 v. .184 and
>> what I get instead is .04 v. .0634; suggestions more than welcome (I
>> could not see how to do this with -collapse- either, but maybe someone
>> else can)
>>
>> . ta e1 acuteall, ro co nofreq
>>
>> +-------------------+
>> | Key               |
>> |-------------------|
>> |  row percentage   |
>> | column percentage |
>> +-------------------+
>>
>>           |  discharge to acute
>> congestive | (no includes everyone
>>     heart |        else)?
>>   failure |         N          Y |     Total
>> -----------+----------------------+----------
>>         N |     87.80      12.20 |    100.00
>>           |     96.00      93.66 |     95.71
>> -----------+----------------------+----------
>>         Y |     81.60      18.40 |    100.00
>>           |      4.00       6.34 |      4.29
>> -----------+----------------------+----------
>>     Total |     87.53      12.47 |    100.00
>>           |    100.00     100.00 |    100.00
*
*   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/
```