Bookmark and Share

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: looping to rename variable names


From   Steve Nakoneshny <[email protected]>
To   "[email protected]" <[email protected]>
Subject   Re: st: looping to rename variable names
Date   Fri, 3 Aug 2012 09:04:26 -0600

Thanks for the correction Nick.
I couldn't remember where -renvars- was from and wasn't anywhere I could easily check. I guessed wrong.

Steve

On 2012-08-03, at 8:21 AM, Nick Cox wrote:

> For completeness, note also
> 
> 1. A -renvars- solution
> 
> renvars *_? , postdrop(2)
> 
> However, -renvars- was never posted on SSC (which Steve meant by
> "SCC"). Files could be downloaded from the Stata Journal website by
> users of  Stata versions 8 through 11. Users of Stata 12 should try
> the much extended -rename- first.
> 
> 2. A loop solution
> 
> foreach v of var *_? {
>           local new = substr("`v'", 1, length("`v'") - 2)
>           rename `v' `new'
> }
> 
> Nick
> 
> 
> On Fri, Aug 3, 2012 at 5:16 AM, Kate Xu <[email protected]> wrote:
>> Thank you so much Steve. I just used
>> 
>> rename *_* *
>> 
>> and problem solved!!!
>> 
>> Obviously you can see that i am a Stata new user. I will be posting
>> more when bumping my head into wall!
> 
> On Fri, Aug 3, 2012 at 3:02 AM, Steve Nakoneshny <[email protected]> wrote:
> 
>>> Rather than use a loop, it would be far more effective to simply use -rename-. See the extensive examples available in -help rename-.
>>> 
>>> If you happen to not be using Stata 12, -renvars- (SCC) would suit here as well.
>>> 
>>> Lastly, it's Stata, not STATA. Please read the FAQ for further details on this point.
> 
> On 2012-08-02, at 7:42 PM, "Kate Xu" <[email protected]> wrote:
> 
>>>> I would like to program a loop in STATA to change the name a long list
>>>> of variables ending with "_" and a letter, like these:
>>>> 
>>>> ab1535_a
>>>> ab32343_b
>>>> ab089790_g
>>>> ab3434_t
>>>> ...........
>>>> 
>>>> I want to change them into
>>>> 
>>>> ab1535
>>>> ab32343
>>>> ab089790
>>>> ab3434
>>>> ...........
>>>> 
>>>> I can use
>>>> ds ab*_*
>>>> local oldname `r(varlist)'
>>>> 
>>>> for each foreach i of local oldname {
>>>> rename `i' ????
>>>> }
>>>> 
>>>> I don't know how to complete this loop, Is there a way to program this please?
> *
> *   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index