Didn't work. From the trace as you said -substr(`var', 6, .)- is not
being evaluated as I expected. Typing the following in the command
line works:
. local newname substr("haem_id", 6, .)
. di `newname'
id
However, typing the foll. does not work:
rename haem_id `newname'
( not allowed
trace on
foreach var of varlist haem_id - haem_nbc {
- local newname `=substr(`var', 6, .)'
type mismatch
= local newname
- rename `var' `newname'
= rename haem_id
varname required
 }
r(100);
On 10/30/06, Scott Merryman <[email protected]> wrote:
The problem is that you are trying to rename a variable with parentheses.
-set trace on- shows that the problem is the local newname contains
"substr(x1, 6, .)" :
. clear
. input str20 x1 str20 x2
                       x1                    x2
  1. "abcdefghij" "dsfskfslkdfsdf"
  2. "abcdefghijklmno" "gjjgdfdfefdf"
  3. end
. set trace on
.   foreach var of varlist x1- x2 {
  2.          local newname substr(`var', 6, .)
  3.          rename `var' `newname'
  4.          }
- foreach var of varlist x1- x2 {
- local newname substr(`var', 6, .)
= local newname substr(x1, 6, .)
- rename `var' `newname'
= rename x1 substr(x1, 6, .)
( not allowed
Change the line so that uses the inline macro expansion:
        local newname `=substr(`var', 6, .)'
Scott
> -----Original Message-----
> From: [email protected] [mailto:owner-
> [email protected]] On Behalf Of Raphael Fraser
> Sent: Monday, October 30, 2006 3:49 PM
> To: [email protected]
> Subject: st: Foreach Problem
>
> Can some one explain why the following code does not work?
>
> . foreach var of varlist haem_id - haem_nbc {
>   2.         local newname substr(`var', 6, .)
>   3.         rename `var' `newname'
>   4.         }
> ( not allowed
> r(101);
>
*
*   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/
--
=============================
Raphael A. Fraser, MSc
Assistant Lecturer in Biostatistics
Sickle Cell Unit
Tropical Medicine Research Institute
Faculty of Medical Sciences
University of the West Indies
Kingston
Jamaica
Tel:  (876) 927-2471; 410-4699
Fax: (876) 927-2984
e-mail: [email protected]
*
*   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/