Does not seem to work:
//-----------------------------------------------------
clear
sysuse auto
renvars \ var1-var`c(k)'
\ invalid name
r(198);
renvars var1-var`c(k)'
r(111);
renvars * var1-var`c(k)'
variable var1 not found
r(111);
which renvars
c:\ado\plus\r\renvars.ado
*! 2.2.1 15aug2000 Jeroen Weesie/ICS
version
version 9.2
*************************************************************
Perhaps I am doing something wrong?? Is slash required? Did you
mean -renamev- ?
From the source code it follows that (at least sometimes) it may stop
with a message
di in re "`oldname' could not be renamed to `newname'"
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/