Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: st: RE: variable naming problem
From
Thomas <[email protected]>
To
[email protected]
Subject
Re: st: RE: variable naming problem
Date
Tue, 07 Sep 2010 10:43:03 +0100
the second loop (local i...) does not work.
The rest works fine. I modified the example for auto.dta:
sysuse auto, clear
reg price mpg rep78
foreach var of varlist mpg rep78{
sum `var' if e(sample), meanonly
local mmean`var' = `r(mean)'
local m25`var' = 0.25*`r(mean)'
local m50`var' = 0.5*`r(mean)'
local m75`var' = 0.75*`r(mean)'
local m2`var' = 2*`r(mean)'
local m3`var' = 3*`r(mean)'
local m4`var' = 4*`r(mean)'
}
foreach j in mean 25 50 75 2 3 4{
local i m`j'mpg
foreach q in mean 25 50 75 2 3 4{
local p m`q'rep78
gen c`j'_`q' = _b[_cons]+_b[mpg]*(`i')+_b[rep78]*(`p') if e(sample)
}
}
Thomas
On 06/09/2010 17:05, Nick Cox wrote:
Something like this?
foreach var of varlist yU yD{
sum `var' if e(sample), meanonly
local mmean`var' = `r(mean)'
local m25`var' = 0.25*`r(mean)'
local m50`var' = 0.5*`r(mean)'
local m75`var' = 0.75*`r(mean)'
local m2`var' = 2*`r(mean)'
local m3`var' = 3*`r(mean)'
local m4`var' = 4*`r(mean)'
}
foreach j in mean 25 50 75 {
local i m`j'yU
foreach q in mean 25 50 75 {
local p m`q'yD
gen c`j'_`q' = _b[_cons]+_b[yU]*(`i')+_b[yU2]*((`i')^2/2) ///
+_b[yD]*(`p')+_b[yD2]*((`p')^2/2) if e(sample)
}
}
Nick
[email protected]
Thomas
respect to the things over which the loop runs.
And these things are numbers. I do not see how I can name differently.
To get a prediction at a specific point using -predict- I suppose I need
the if option. But as the model is quiet long and many variables drop
out -generate- involves less code.
On 06/09/2010 15:45, Nick Cox wrote:
Only decimal points are problematic. Integer digits are allowed in variable names after the first character. The remedy is to use evocative names rather than numbers nevertheless. Only you can decide which names are best for your purpose.
Why aren't you using -predict-?
Nick
[email protected]
Thomas
after a regression I would like to generate predictions for different
values of the original variables.
The first loop generate various scaled mean values.
The second and third loop then generate the predictions c* for the
various scaled means.
The problem is how to name c*. Now the names include numbers which Stata
does not accept (error: invalid name).
Any ideas how I can get around this?
________________
foreach var of varlist yU yD{
sum `var' if e(sample)
local m`var' = `r(mean)'
local m25`var' = 0.25*`r(mean)'
local m50`var' = 0.5*`r(mean)'
local m75`var' = 0.75*`r(mean)'
local m2`var' = 2*`r(mean)'
local m3`var' = 3*`r(mean)'
local m4`var' = 4*`r(mean)'
}
foreach i in `myU' `m25yU' `m50yU'{
foreach p in `myD' `m25yD' `m50yD'{
gen c`i'_`p' = _b[_cons]+_b[yU]*(`i')+_b[yU2]*((`i')^2/2) ///
+_b[yD]*(`p')+_b[yD2]*((`p')^2/2) if e(sample)
}
}
*
* 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/