1. -defv- may let you (re)generate a variable, but putting the
definition in notes is a nuisance:
2. -defv- seems to require spaces
By contrast -labgen- puts the definition directly in the variable label
and doesn't require spaces - however -labgen won't allow regeneration.
Al F.
. drop temp*
. defv temp1 = log(day)
. defv temp2=log(day)
r(7);
. labgen temp3=log(day)
. des temp*
storage display value
variable name type format label variable label
------------------------------------------------------------------------
---------------------------
temp1 float %9.0g *
temp3 float %9.0g log(day)
. notes temp1
temp1:
1. generate temp1 = log(day)
.
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Nick Cox
Sent: Thursday, September 25, 2008 2:39 PM
To: [email protected]
Subject: Re: st: RE: Re: label (automatically)
I'd forgotten about this. Thanks for the plug.
I think this predates SSC. Either way, it is probably not on SSC because
I just posted it there and did not bother to write a help file. Stuff
like that never makes the grade to SSC and thus to -njc_stuff- on SSC.
Twelve years on, that's still my inclination.
A very good reason for that, as already pointed out, is that -defv-
already exists to do the job.
A key detail for Kit's program is that -gettoken- should parse on equals
signs as well.
Also, what happens if people write -mygen double lprice = log(price)-?
Nick
[email protected]
Feiveson, Alan H. (JSC-SK311) wrote:
> Yes - Nick Cox wrote -labgen.ado- which does excactly that. FOr some
> reason this is not on SSC. Perhaps Nick could make it avaliable.
>
> *! version 1.0.1 7/17/1996
> program define labgen
> version 4.0
> parse "`*'", parse(" =")
> if "`2'"=="=" {
> local var `1'
> mac shift 2
> }
> else if "`3'"=="=" {
> local type `1'
> mac shift
> local var `1'
> mac shift 2
> }
> else { error 198 }
> gen `type' `var' = `*'
> label var `var' "`*'"
> end
Christopher
> Not to my knowledge.
> Probably the best way of documenting this is to use variable -notes-.
> Try this:
>
> program mygen
> qui gen `0'
> gettoken name rest: 0
> note `name': `0'
> end
>
> mygen lprice = log(price)
> mygen gpm = 1/mpg
> notes
>
>
> Kit Baum, Boston College Economics and DIW Berlin
> http://ideas.repec.org/e/pba1.html
> An Introduction to Modern Econometrics Using Stata:
> http://www.stata-press.com/books/imeus.html
>
> On Sep 25, 2008, at 1:47 PM, Alessandro Oliveira wrote:
> I wonder if you could help me with an Stata issue.
>> Is it possible for stata to automatically label a new variable with
>> the formula used in "gen"? ex: gen y = x+1 automatically yielding
>> label variable y with "gen y = x+1"
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/
*
* For searches and help try:
* http://www.stata.com/help.cgi?search
* http://www.stata.com/support/statalist/faq
* http://www.ats.ucla.edu/stat/stata/