Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Nick Cox <njcoxstata@gmail.com> |

To |
"statalist@hsphsun2.harvard.edu" <statalist@hsphsun2.harvard.edu> |

Subject |
Re: st: Use of local macros when generating new variables (-rowranks-) |

Date |
Thu, 23 May 2013 19:40:52 +0100 |

-rowranks- is from SJ 9-1. It sounds as if you want something like forval j = 1/3 { rowranks Cabc_`j' Cdef_`j' C456_`j' C789_`j', gen(R1_`j'-R4_`j') } The trick here is: how many repetitions are there going to be, and what varies between repetitions? The answer is 3, and the last character of each variable name varies, so that's your loop. Nick njcoxstata@gmail.com On 23 May 2013 19:27, Michael Crain <michaelcrain@ymail.com> wrote: > Using Nick Cox's -rowranks- ado that ranks values across rows, the > general syntax is: > rowranks x1-x5, generate(r1-r5) > > My very large dataset consists of subsets of rows (variables) that I > want to rank. I need some help on the syntax (or approach). > > My variables have this general form: C[code string]_[time period] > > I want to rank across the C[code string] variables by _year_. For > instance, my variables look like this: > > Cabc_1 > Cdef_1 > C456_1 > C789_1 > Cabc_2 > Cdef_2 > C456_2 > C789_2 > Cabc_3 > Cdef_3 > C456_3 > C789_3 > > I want to rank across Cabc Cdef C456 C789 for each time period so: > a. rank across Cabc_1 Cdef_1 C456_1 C789_1, then > b. rank across Cabc_2 Cdef_2 C456_2 C789_2, then > c. rank across Cabc_3 Cdef_3 C456_3 C789_3 > > I tried using a loop but my problem is how to write the -rowranks- > syntax for the subset variable range for the source variables and new > rank variables. > > My loop is this: > > levelsof timedummy, local(timeperiod) > levelsof codestring, local(code) > foreach t of local timeperiod { > foreach c of local code { > rowranks C`c'_`t', gen(R`c'_`t') > } > } > > With this code, Stata sees my source variables (over 200 of them in year time period), but sees only one new variable name (an error). I tried variations of this syntax for the variables with no success, > > Can anyone help with the syntax? Or is there is a better approach? * * For searches and help try: * http://www.stata.com/help.cgi?search * http://www.stata.com/support/faqs/resources/statalist-faq/ * http://www.ats.ucla.edu/stat/stata/

**References**:**st: Use of local macros when generating new variables (-rowranks-)***From:*Michael Crain <michaelcrain@ymail.com>

- Prev by Date:
**Re: st: Need to Split String Variable** - Next by Date:
**Re: st: Use of local macros when generating new variables (-rowranks-)** - Previous by thread:
**st: Use of local macros when generating new variables (-rowranks-)** - Next by thread:
**Re: st: Use of local macros when generating new variables (-rowranks-)** - Index(es):