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

st: RE: Using variables in numlist of forvalue command


From   "Nick Cox" <[email protected]>
To   <[email protected]>
Subject   st: RE: Using variables in numlist of forvalue command
Date   Wed, 8 Jun 2005 17:51:14 +0100

You can't put a variable into a numlist
in this way. 

Try something like 

su daysupply, meanonly 
forvalues daynum = 2/`r(max)' { 
	replace date`daynum' = date1 + `daynum' - 1 if `daynum' <= daysupply 
} 

You may know the maximum in advance, so that you 
can simplify to say 

forvalues daynum = 2/10 { 
	replace date`daynum' = date1 + `daynum' - 1 if `daynum' <= daysupply 
} 

Nick
[email protected] 

[email protected]

I'm trying to change several variables in each observation. The problem is that the number of variables I want to update is different for each observation and this number is a variable in that observation. I've tried using a forvalues loop, which works if I specify a stop and start number, but I cannot find a way to put a variable in the numlist allowing this to change for each observation.

Here's the command that works:
        forvalues daynum = 2/10 {
        replace date`daynum'=date1+`daynum'-1
        }

But when I replace the 10 with the variable that tells me how many date variables to change, I get a syntax error.
        forvalues daynum = 2/daysupply {
        replace date`daynum'=date1+`daynum'-1
        }

*
*   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–2024 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index