| |
[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]
Re: st: Using gen / egen in one step (not two)
There is no need for guessing on this. If you
look directly at the help you can see that the
syntax of -egen- is
egen [type] newvar = fcn(arguments) [if] [in] [, options]
and so there is no scope for anything on the right-hand
side other than -if- or -in- stuff or options.
There is really is a world of difference between functions
(strict sense) and -egen- functions: in several ways use
of the same term is unfortunate, although a different
term would also not have been desirable.
In many contexts functions can be combined pretty well
arbitrarily with all kinds of other stuff in complicated
expressions, but with -egen- functions there is no
hidden flexibility -- except, as Scott Merrymsn indicated,
the flexibility you provide yourself as programmer
through options. Otherwise what you want requires two
lines.
Nick
[email protected]
Sergio Correia
I don't think you can't do it in one line. Even if you could, I think
that it would be a bad idea for more advanced uses of -egen-. Imagine
trying to understand (or even program!) something like:
egen x = 2+5*log(seq(), from(1) to(10) by(region))
On the other hand, with -generate- you can mix all the functions you
want, like in:
generate x = 3 * (price + mpg) / 2
Which is similar to what you did, except for the treatment of missing
values.
Jeremy Miles
Am I missing something obvious here, when I try to combine two steps
into one line:
. sysuse auto
. egen x = rowmean(price mpg) * 3
Stata says:
varlist not allowed
r(101);
For:
. egen x = 3 * rowmean(price mpg)
Stata says:
r(198);
(Invalid syntax)
I can do it in two steps, but that seems inelegant. Have I missed
something obvious?
*
* 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/