Statalist


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

st: RE: RE: nested forvalues loop


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: RE: RE: nested forvalues loop
Date   Mon, 5 Oct 2009 12:35:35 +0100

In order to give further advice, I think we'd need to see exactly what
code you used and what you mean by "did not return any value". This is a
standard Statalist request. 

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

(thread is edited) 

Ariel Linden

Thank you for reviewing my code. I tried running it and it did not
return
any value for any of the ps`j' 

This code is supposed to use the current and lagged months covariates in
the
logistic model to account for past treatment and covariate history.

So, given that context, I would like to loop at each month,
incorporating
the lags of all prior months starting at month 14, working up to the end
of
the last period (month 24). Month 14 will only have 1 lag (this is where
the
month 13 data comes in), while month 24 will contain covariate values
from
month 13 all the way up to month 24.

"Nick Cox" <n.j.cox@durham.ac.uk>

There is some inconsistency here over whether you want to start at 13 or
14. 

Your -predict- command won't work. Second time around the inner loop,
ps`i' already exists. 

Here's a guess at better code. 

forvalues j=1/10 {
	gen ps`j' = . 
	forvalues i=14/24 {
		capture logit  Y l(0/`j').X1 l(0/`j').X2 l(0/`j').X3
month if month==`i'
		if _rc == 0 { 
			tempvar work
			predict `work' 
			replace ps`j' = `work' if month == `i'
			drop `work'
		} 
	}
}		
	
Ariel Linden

I have a basic question about structuring this nested forvalues loop
(Stata
v10.1).

I have a panel data set and I want to focus on months 13 thru 24. In
each
loop I want to use the lagged values for all the prior months. So I have
`i'
which loops through the months 13 thru 24, and `j' that is intended to
increase the lag at each iteration.

For example month 14 should have 0/1 lag and month 24 should have 0/10
lags.

I would appreciate feedback as to if I wrote this correctly. 

forvalues i=14/24 {

	forvalues j=1/10 {

capture logit  Y l(0/`j').X1 l(0/`j').X2 l(0/`j').X3 month if month==`i'

predict ps`i' if month == `i'
}
}


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