==== solution 1
A direct answer to your question is that you could exploit the results
of
your -count- command by using its result saved in r(N). For example,
gen byte nOK = 0
egen group = group(PanelMember) if consumption > 0 & consumption < .
su group, meanonly
qui forval i = 1/`r(N)' {
count if group == `i'
replace nOK = r(N) if group == `i'
}
followed by
... if nOK >= 2
====
But there are other and better ways to do that.
==== solution 2
One is
egen nOK = total(consumption > 0 & consumption < .) , by(PanelNumber)
followed by
... if nOK >= 2 & consumption > 0 & consumption < .
As -consumption > 0- is true, and evaluates to 1, whenever -consumption-
is positive, the -egen- statement counts suitable observations within
each panel.
The extra condition -consumption < .- has been added to exclude any
missings, which also count as positive. That does no harm and may catch
some problems. (The -count- statement above does the same.)
====
==== solution 3
Another is closer to your original code:
gen byte OK = consumption > 0 & consumption < .
bysort OK PanelMember : gen nOK = cond(OK == 0, 0, _N)
... if nOK >= 2
====
At this moment, the last is in my view the best way to do what you want.
Nick
[email protected]
P.S. In your example, the variable counts observations in each panel,
not the number of panels.
ippab ippab
I just realized that I can generate a variable with the number of
panels with the following command: by PanelNumber: gen CountSessions
= _N .
But, in my data, there is another variable which indicates if that
observation has any positive consumption. I actually need to count
the number of positive consumptions for each panel. There are
sessions without any consumption. For example, I used "by
PanelNumber: gen CountSessions = _N if consumption>0". This is
wrong because this gives CountSessions =2 even if a panel has one
session (observation) with positive consumption and one session
(observation) without any consumption.
I found that the following command gives me the right output on the
screen: "by PanelNumber: count if consumption>0". However, I
don't know how to generate a variable to capture the output for the
command: "by PanelNumber: count if consumption>0". I would really
appreciate some help with this.
*
* 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/