Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
From | Nick Cox <njcoxstata@gmail.com> |
To | statalist@hsphsun2.harvard.edu |
Subject | Re: st: ranking variables on the basis of total values of observations |
Date | Wed, 28 Mar 2012 23:22:15 +0100 |
If I understand your problem correctly, it is that of -rowranks-. See also for a review in that territory SJ-9-1 pr0046 . . . . . . . . . . . . . . . . . . . Speaking Stata: Rowwise (help rowsort, rowranks if installed) . . . . . . . . . . . N. J. Cox Q1/09 SJ 9(1):137--157 shows how to exploit functions, egen functions, and Mata for working rowwise; rowsort and rowranks are introduced This is now accessible to all at http://www.stata-journal.com/sjpdf.html?articlenum=pr0046 under the Stata Journal's three-year window. Nick On Wed, Mar 28, 2012 at 9:44 PM, tashi lama <ltashi32@hotmail.com> wrote: > Hello Nick, > > My apology, I mean rowranks, not rowsum. So, let's see if I could simplify it... > > > > Essentially I want to be able to rank var2 in the following dataset looking at its total values of obs from 05jan2010 to 09jan2010. so, I would use generate sum to get a rumsum. That would look like > > > > > > date var2 var3 var4 totalv~2 totalv~3 totalv~4 > 1. 05jan2010 3 1 7 3 1 7 > 2. 06jan2010 2 3 6 5 4 13 > 3. 07jan2010 4 4 5 9 8 18 > 4. 08jan2010 1 2 4 10 10 22 > 5. 09jan2010 5 8 3 15 18 25 > 6. 10jan2010 8 9 2 23 27 27 > 7. 11jan2010 4 6 3 27 33 30 > 8. 12jan2010 3 3 8 30 36 38 > 9. 13jan2010 1 2 3 31 38 41 > > > > > So, I would look at the observations at 09jan2010. So, as you can see, var2 has 5, var3 has 8 and so on. since 5 is the second lowest in that row after 3, I would say var2 is 2nd. Now, I have to able to code this and that is exactly I think you guys can help me or give me a lead. > > > > Thank you and let me know if I could make more clea. > > > > Tashi > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >> Date: Wed, 28 Mar 2012 21:17:19 +0100 >> Subject: Re: st: ranking variables on the basis of total values of observations >> From: njcoxstata@gmail.com >> To: statalist@hsphsun2.harvard.edu >> >> I don't know what -rowsum- is here. >> >> Thanks, but this doesn't get me much closer. Of course, if other >> people can work out what you want, they should chip in. >> >> Please _show_ what you want it changed to, as I asked earlier. No >> word description, just what the dataset would like look after changes. >> >> Nick >> >> On Wed, Mar 28, 2012 at 8:49 PM, tashi lama <ltashi32@hotmail.com> wrote: >> >> > date var2 var3 var4 >> > 1. 05jan2010 3 1 7 >> > 2. 06jan2010 2 3 6 >> > 3. 07jan2010 4 4 5 >> > 4. 08jan2010 1 2 4 >> > 5. 09jan2010 5 8 3 >> > 6. 10jan2010 8 9 2 >> > 7. 11jan2010 4 6 3 >> > 8. 12jan2010 3 3 8 >> > 9. 13jan2010 1 2 3 >> > >> >> > Say, I would like to rank var2 for certain period of time say (05jan2010-09jan2010). So, I would have Stata add the obs values from 05jan2010 to 09jan2010 for all the variables and rank var2 like 1st or 2nd or 3rd. I looked at rowsum. I don't think it will help. >> >> >> Date: Wed, 28 Mar 2012 20:34:58 +0100 >> >> Subject: Re: st: ranking variables on the basis of total values of observations >> >> From: njcoxstata@gmail.com >> >> To: statalist@hsphsun2.harvard.edu >> >> >> >> As far as I can see this could mean several things. I am not clear >> >> that when you say "rank" you don't mean "order" instead. >> >> >> >> I don't think you want -rowranks- (SSC). >> >> >> >> Why not just give us a toy dataset, with say 5 observations and 5 >> >> variables, and what you want to change it to? Then it should be easier >> >> to see what you want. >> >> >> >> By the way, adding lots of blank lines just makes your posts more >> >> difficult to read. I've edited what came in. >> >> >> >> Nick >> >> >> >> On Wed, Mar 28, 2012 at 8:22 PM, tashi lama <ltashi32@hotmail.com> wrote: >> >> > >> >> > I have a list of variables and I would like to rank the variables or any given variable for that matter on the basis of total values of their observations. I thought of approaching this problem in the following way. >> >> > >> >> > 1. find the running sum of all the variables using generate or the total using egen although I think I would prefer generate. >> >> > >> >> > say there are var1 var2 var3 >> >> > >> >> > gen tvar1=sum(var1) >> >> > gen tvar2=sum(var2) >> >> > gen tvar3=sum(var3) >> >> > >> >> > 2. then compare tvar1, tvar2 and tvar3 using if conditions. >> >> > >> >> > Once this is done, I would like to expand such that I can rank those variables but for given period of time. And this is essentially why I think generate sum is better for this problem because it is a running sum. >> >> >> >> > say date var1 var2 var3 >> >> > >> >> > I would like to be able to rank variables say for 01jan2011 to 01feb2011 and so on. >> >> > >> >> > Has anyone worked in this kind of problem before or does anyone have any idea or thought regarding this problem? Any help or lead would be highly appreciated? I saw that there is a stata module rowranks to calculate ranks in a row but i don't know how can it be useful to me. Most probably not.... >> >> * >> * 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/ * * 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/