Thanks to Kit Baum, a small utility -safedrop- has been added
to SSC.
This addresses the problem raised by eddy_05831 on 21 October,
and in a previous thread around 12 February, and earlier
on Statalist. Here I recapitulate the entire issue as
I understand it, without assuming that you read and
remembered any of those threads.
-safedrop- drops variables if and only if their variable names are
specified in full, i.e. abbreviation, even if unambiguous, is
disallowed. So with a syntax of
. safedrop <namelist>
-safedrop- drops the variable(s) named in <namelist>
if and only if every element of <namelist> is a fully
spelled out variable name.
To make this concrete, suppose (1) you want to drop
variable -myvar- if and only if that variable exists with
exactly that name; (2) there is just one variable in your
dataset whose name begins with -myvar-, namely -myvariable-.
As -myvar- is an unambiguous abbreviation of -myvariable-,
both
. drop myvar
and
. capture drop myvar
will cause -myvariable- to be dropped. This is not
a bug, even if it may occasion surprise; it is just a
consequence of Stata's variable name abbreviation rules.
. safedrop myvar
is a way to ensure that this does not happen.
Stata 8 is required. -ssc- may be used to install.
Nick
[email protected]
P.S. David Kantor's suggestion of adding an option
to -drop- would be a much better way to handle this,
but is beyond the reach of user-written programs.
*
* 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/