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: 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/