[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]
st: Efficiency: was RE: Taking averages, etc.
On Wed, 17 Dec 2003, Nick Cox wrote:
> As it happens,
> . count if mi(mpg)
> . su mpg if r(N) == 0
> is not only legal, but produces the correct result.
> What happens is that Stata looks at the condition
> if r(N) == 0
> and says in turn: is this true for observation 1?
> for observation 2? for observation 3? and so
By coincidence I wrote to Tech Support just yesterday on this point.
While it is possible to replace one value in a variable (say the 4th)
replace x = y if _n == 4
that code tests _n for every element. It's very wasteful, though you may
not notice in most interactive sessions. In a program however, the
replace x = y in 4
will be about _N times faster. As this will typically be inside a loop
dealing will each element of the variable, it may reduce execution time
from O(_N squared) to O(_N).
R. Allan Reese Email: email@example.com
Associate Manager GRI Direct voice: +44 1482 466845
Graduate School Voice messages: +44 1482 466844
Hull University, Hull HU6 7RX, UK. Fax: +44 1482 466436
Be careful in handling the battery of the remote control transmitter
If swallowed consult a physician immediately for emergency treatment
[Safety instructions: Hitachi CP-X275 data projector]
* For searches and help try: