Statalist The Stata Listserver


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

st: -egenmore- revised on SSC


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   st: -egenmore- revised on SSC
Date   Sun, 26 Mar 2006 17:36:31 +0100

Thanks to Kit Baum, the -egenmore- package has been revised
on SSC. Interested users of Stata 7 up should please install, 
or re-install, using -ssc. (The minimum requirements of the 
functions in -egenmore- vary from Stata 6 to later, but 
Stata 6 users should not update, as explained below.) 

-egenmore- is a set of -egen- functions written by 
Nick Winter, Steven Stillman, Ulrich Kohler, Kit Baum
and myself. 

(Please note also that many other people outside StataCorp
-- and a few inside -- have written -egen- functions that
are not part of official Stata, as -findit egen- will bear
witness.) 

Individual -egen- functions are not that big a deal, but an -egen- 
habit encourages some small civic virtues: 

* -egen- functions generate a single variable, typically
following a simple recipe. Maintaining separate packages 
for such commands would add to the complications faced by 
users, including the package authors. 

* -egen- encourages more uniform syntax. 

* Having a library of functions makes it more likely 
that other user-programmers can solve a nearby problem 
by modifying an existing program. 

On the other hand, be aware that 

* Using -egen- in a program can be very inefficient, 
especially if there are repeated calls to a particular 
function. In essence you oblige Stata to interpret several
dozen lines of code each time and, done repeatedly, 
that might not be trivial. 

* Just because there's an -egen- function to do something
doesn't mean -egen- is the best way to do that, even once. 
Sometimes looking up the -egen- syntax and working out 
what it should be in your case takes more time than a 
direct assault. 

Generalities aside, the following changes in -egenmore- seem
worth mentioning: 

1. The help is much revised. It has been rewritten in 
SMCL. This disenfranchises any Statalist members on 
version 6 or earlier. However, any members on Stata 5
or earlier will find no functions in this package that 
will work with their Stata. I trust that any members 
on Stata 6 interested in -egenmore- have long since 
installed a copy. They should not update, as there 
is nothing new they can use. 

In the revised help, functions have been grouped 
thematically, definitions and examples have been integrated, 
and many comments added. As -egenmore- has an archive function, 
we don't drop stuff that appears obsolete or superseded given
current Stata, but we try to flag alternatives. 

For example, in his very recent book Svend Juul kindly 
refers to -egenmore-, including references to functions
arguably already superseded by other commands. Readers of Svend's 
book are going to expect that stuff to be there because
he quotes it. 

2. Ulrich Kohler's -mlabvpos()- function for positioning
marker labels joins the package.
 
The separate package -gmlabvpos- is no more. 

3. There are other new functions: 
	adjl()
	adju()
	outside()
	dayofyear()
	foy()
	total0() 

-adjl()-, -adju()- and -outside()- compute the 
adjacent values and outside values shown on boxplots. 
If you want to emulate some or all the features of 
boxplots you may need these in addition to the usual 
functions yielding extremes, quartiles and medians. 

-dayofyear()- and -foy()- compute number of days
and fraction of year elapsed since the start of the year
from daily date variables. The start can be set to any
date other than 1 January. 

-total0()- is a variant on official Stata's -egen, total()-. 
A total is shown if and only if all values are non-missing; 
otherwise missing is shown. 

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

*
*   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/



© Copyright 1996–2020 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index