Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

Re: st: RE: kruskal-wallis test [now -foreach, replace andappend]


From   "Herve STOLOWY" <stolowy@hec.fr>
To   <statalist@hsphsun2.harvard.edu>
Subject   Re: st: RE: kruskal-wallis test [now -foreach, replace andappend]
Date   Sun, 06 Nov 2005 19:30:39 +0100

Dear Nick:

I used your command lines and it works perfectly.

In order to get a tab-delimited file, and following your help on previous postings, I wrote the following command lines:

foreach var of varlist index2 prov_ass {
egen rank_`var' = rank(`var') if sodas3cl < . 
bysort sodas3cl : egen ranksum_`var' = sum(rank_`var') 
by sodas3cl : egen rankmean_`var' = mean(rank_`var') 

tabstat rankmean_`var', by(sodas3cl) save
tabstatmat statdes3
mat2txt, matrix(statdes3) saving(statdes3) append

}

My problem is the following:

At the end of the loop, the first time, I should have -replace- and the subsequent times -append-. I don't know how can I make Stata understand this difference in a loop.

Best regards

Hervé




? Is there a possibility with matrices (-makematrix-, -mat2txt-, or another command)?

Best regards

Hervé


***********************************************************
Professeur/Professor
Coordinateur du Département/Head of Department
HEC Paris
Département Comptabilité Contrôle de gestion / Dept of Accounting and Management Control
1, rue de la Liberation
78351 - Jouy-en-Josas
France
Tel: +33 1 39 67 94 42 - Fax: +33 1 39 67 70 86
stolowy@hec.fr
http://campus.hec.fr/profs/stolowy/perso/home.htm
>>> n.j.cox@durham.ac.uk 11/06/05 6:15 PM >>>
In addition to Kit's suggestions, note that
the sum of ranks and the mean rank are nothing 
exotic, and so are also obtainable directly: 

sysuse auto, clear 
egen rank = rank(mpg) if rep78 < . 
bysort rep78 : egen ranksum = sum(rank) 
by rep78 : egen rankmean = mean(rank) 

tabdisp rep78 if rep78 < . , c(ranksum rankmean)  format(%5.1f) 

----------------------------------
Repair    |
Record    |
1978      |    ranksum    rankmean
----------+-----------------------
        1 |       72.5        36.3
        2 |      220.5        27.6
        3 |      905.0        30.2
        4 |      688.5        38.3
        5 |      528.5        48.0
----------------------------------

. kwallis mpg, by(rep78) 

Test: Equality of populations (Kruskal-Wallis test)

  +------------------------+
  | rep78 | Obs | Rank Sum |
  |-------+-----+----------|
  |     1 |   2 |    72.50 |
  |     2 |   8 |   220.50 |
  |     3 |  30 |   905.00 |
  |     4 |  18 |   688.50 |
  |     5 |  11 |   528.50 |
  +------------------------+

Nick 
n.j.cox@durham.ac.uk 

Kit Baum
 
> Herve S. says
> 
> I run the Kruskal - Wallis tests of differences between groups. (In  
> reality, I use a variation -kwallis2- [donwloadable from ssc] which  
> provides the rank mean as well as the rank sum (-kwallis- only  
> provides the ranksum).
> 
> kwallis2 index2, by(sodas3cl)
> (snip)
> 
> This code was written by another Herve, Herve Caci, back in 1999 for  
> Stata 5.0. Back then there was not the simple means of returning  
> items in a return list (one could return macros in S_1, S_2, 
> etc. and  
> it does return a few--presumably not the ones you need).
> 
> Make a copy of kwallis2.ado (kwallis3.ado?), change the version  
> number to something more recent (e.g. version 8.2), change the  
> program define line to read "program define kwallis3, rclass" 
> and see  
> if the routine still runs and generates the same results. If so, add  
> return statements for each item you would like to use after the  
> routine runs. E.g. `Mean'`[`i'] (which is the i'th observation of a  
> tempvar named `Mean') is the rank mean for the i-th group. Put it in  
> a scalar and return it, e.g.
> 
> return scalar mean1 = `Mean'[1]
> etc.
> 
> These items will then show up in your return list.

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/


*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



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