[email protected]
>
> I am relatively new to Stata. I read the manuals but could
> not figure out
> the following on my own. Please excuse if this turns out to
> be a very silly question.
>
> I have panel data in the long format, and declared them
> appropriately:
> -tsset subject period-
> In some descriptive analyses, I want to make the following
> count statement
> (assume that g is the name of the variable of interest):
> -count if period==20 & L0.g==0 & L1.g==0 & L2.g==0 .... and
> so forth, until
> L15.g==0-
>
> I am looking for an abbreviation meaning "lag 0 to lag 15
> of variable g are
> all 0", because I will need this kind of statement
> frequently. Typing
> L(0/15).g does not work.
> Any suggestions would be very much appreciated. In case I overlooked
> something in the docus, please point me to the documentation.
Here is one way to do it:
Let's suppose the suspect innocent until declared
guilty, that is, we believe that all lagged values are zero
until we find one which isn't:
gen allzero = 1
forval i = 0/15 {
replace allzero = allzero * (L`i'.g == 0)
}
The quantity
L`i'.g is in turn L0.g L1.g ... L14.g L15.g
and
(L`i'.g == 0) is 1 or 0 depending on whether the lagged
value is 0 or not.
You can also do it with the logical operator "&". The result
is naturally the same.
Some other approaches break down because they won't
accept the time series operators.
For more on true and false in Stata, see
http://www.stata.com/support/faqs/data/trueorfalse.html
For more on any/all problems, see
http://www.stata.com/support/faqs/data/anyall.html
Nick
[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/