Stata The Stata listserver
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: RE: RE: substring of a variable name


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: RE: substring of a variable name
Date   Thu, 30 Jun 2005 22:46:11 +0100

foreach var of varlist data* {
   	local newname = substr("`var'", 5, .)
   	rename `var' `newname'
}

Nick 
n.j.cox@durham.ac.uk 

> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu
> [mailto:owner-statalist@hsphsun2.harvard.edu]On Behalf Of Nick Cox
> Sent: 30 June 2005 22:44
> To: statalist@hsphsun2.harvard.edu
> Subject: st: RE: substring of a variable name
> 
> 
> There is a command dedicated to this 
> purpose, -renpfix-. 
> 
> But your attempt to do it from first 
> principles is almost there. The most 
> crucial detail is the lack of an 
> equals sign to force evaluation. 
> 
> foreach var of varlist data* {
>   	local newname = substr(`var', 5, .)
>   	rename `var' `newname'
> }
> 
> Another way to do it is 
> 
> foreach var of varlist data* {
>   	local newname : subinstr local var "data" ""
>   	rename `var' `newname'
> }
> 
> In general, variable names can be manipulated 
> using macros and/or string functions, just like other text. 
> In fact, a large fraction of Stata depends on precisely that. 
> 
> Nick 
> n.j.cox@durham.ac.uk 
> 
> Martin Rio
>  
> > I have a dataset with several variables named:
> > datax1 datax2 datay1 datapt datafj
> > 
> > and I'd like to remove the 4 first characters of each to 
> get variables
> > with names:
> > x1 x2 y1 pt fj
> > 
> > I tried:
> > 
> > foreach var of varlist data* {
> >  	local newname substr(`var', 4, length(`var')-2)
> >  	rename `var' `newname'
> > }
> > 
> > It seems that the standard string functions may not apply to 
> > macros. Any
> > ideas on how to do this? Are there string functions specific 
> > to macros? I
> > was looking at the documentation for macro extended functions 
> > but did not
> > find something that would seem to do it.
> 
> *
> *   For searches and help try:
> *   http://www.stata.com/support/faqs/res/findit.html
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/
> 

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index