Note that the -capture- can eat other
errors too, most obviously that `v'
holds an illegal variable name or that
`v' doesn't exist as a variable. However,
the obvious retort to that is to ensure
this code is used in a context in which
`v' does pick up the name of an existing variable.
Nick
[email protected]
Seb Buechte
> What I suggest is certainly not elegant yet it is simple and
> should work, too:
>
> capture replace `v'=.
> capture replace `v'=""
Nick Cox
> > It would seem that there is no generic
> > object or function to do what you want.
> >
> > As you know, -missing()- returns true
> > or false to "is this missing?".
> >
> > But your code could presumably be
> > condensed to
> >
> > local typ: type `v'
> > local missvalue = cond(substr("`typ'", 1, 3) == "str", `""""', ".")
> > replace `v' = `missvalue'
> >
> > and even to
> >
> > local missvalue = cond(substr("`: type `v''", 1, 3) ==
> "str", `""""', ".")
> > replace `v' = `missvalue'
> >
> > without, however, being quite as elegant
> > as one might wish.
David Kantor
> > > If you are interested, I have used similar code in a slightly
> > > different
> > > way, which enables either -replace- or -post- (or both):
> > >
> > > local typ: type `v'
> > > if substr("`typ'", 1, 3) == "str" {
> > > local missvalue = `""""'
> > > }
> > > else {
> > > local missvalue = "."
> > > }
> > >
> > > ...
> > > replace `v' = `missvalue'
> > >
> > > or:
> > >
> > > postfile postname `typ' var1 ...
> > > ...
> > > post postname (`missvalue') ...
*
* 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/