Notice: On March 31, it was **announced** that Statalist is moving from an email list to a **forum**. The old list will shut down on April 23, and its replacement, **statalist.org** is already up and running.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

From |
Thomas <tpt21@cam.ac.uk> |

To |
statalist@hsphsun2.harvard.edu |

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 n.j.cox@durham.ac.uk 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 n.j.cox@durham.ac.uk 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/

**References**:**st: variable naming problem***From:*Thomas <tpt21@cam.ac.uk>

**st: RE: variable naming problem***From:*Nick Cox <n.j.cox@durham.ac.uk>

**Re: st: RE: variable naming problem***From:*Thomas <tpt21@cam.ac.uk>

**RE: st: RE: variable naming problem***From:*Nick Cox <n.j.cox@durham.ac.uk>

- Prev by Date:
**Re: st: Multiple Imputation on Panel Data: all variables have missing data, and the panels are expanding** - Next by Date:
**Re: AW: AW: st: RE: variable naming problem** - Previous by thread:
**RE: st: RE: variable naming problem** - Next by thread:
**st: Using pathreg in STATA** - Index(es):