Statalist


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

[no subject]



Is this what you mean will happen? It should never occur in the case
in question because vars may be sequentially numbered, and
32-character names allow you to allocate more names than the Stata
limit.

My preferred strategy would be to:
1. generate K temporary variable names (note that it is Stata's
responsibility to ensure that the suggested variable name is unique)
2. rename each variable to the temporary name
3. rename each variable to the sequential name

program rename_seq
forvalues i=1/`=c(k)' {
  tempvar tmp`i'
}
ds
local i = 1
foreach var of varlist `r(varlist)' {
  rename `var' `tmp`i''
  local ++i
}
ds
local i = 1
foreach var of varlist `r(varlist)' {
  rename `var' var`i'
  local ++i
}
end
/* any resemblance to the code of Friedrich is purely coincidential */

Regards, S.R.




On Fri, Oct 10, 2008 at 2:46 PM, Nick Cox <[email protected]> wrote:
> You can try it and see how smart the authors were (on this point).
>
> Nick
> [email protected]
>
> Sergiy Radyakin
>
> On Fri, Oct 10, 2008 at 2:26 PM, Nick Cox <[email protected]> wrote:
>> You don't need to fire up -ds- beforehand. This can thus be reduced to
>>
>> local i = 1
>> foreach var of var * {
>>        ren `var' var`i'
>>        local ++i
>> }
>>
>> In fact you don't need a loop. With -renvars- from the Stata Journal
>> (-search renvars- for location) you can go
>>
>> renvars \ var1-var`c(k)'
>
> What if var5 already exists (and it is 10th in order). Will -renvars-
> be intelligent enough to sense it and adjust numbering accordingly? or
> will it just crash with error 110 after renaming the fifth variable?
>
>>
>> c(k) is held by Stata as the number of variables -- see results of
>> -creturn li- and it has a local macro persona `c(k)'.
>>
>> Naturally -renvars- is doing the loop on your behalf. It also checks
> for
>> name problems.
>>
>> If Mai does not want all variables renamed, then the advice is
> modified
>> accordingly.
>>
>> Nick
>> [email protected]
>>
>> Friedrich Huebler
>>
>> ds
>> local i = 1
>> foreach var of varlist `r(varlist)' {
>>  ren `var' var`i'
>>  local ++i
>> }
>>
>>
>> On Thu, Oct 9, 2008 at 11:31 PM, mai7777 <[email protected]> wrote:
>>
>>> How can I loop over vars to rename them by their order number.
>>> so they become var1, var2, var3...?
>
> *
> *   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–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index