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/