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

From |
"Nick Cox" <n.j.cox@durham.ac.uk> |

To |
<statalist@hsphsun2.harvard.edu> |

Subject |
RE: st: Syntax Error in forvalues loop |

Date |
Mon, 3 Nov 2008 11:16:43 -0000 |

A footnote (or headnote): -egen, rsum()- will work in modern Statas but is undocumented: the modern name is -rowtotal()-. Nick n.j.cox@durham.ac.uk Tim Wade Michelle, maybe a different approach, something like this, will work. Basically create a set of temporary variables equal to the original set of variables which you recode to 1 and 0 for each race category, sum them up, and drop them then do it again for the next race category. forvalues i=1/[number of race categories] { forvalues j=1/28 { gen temp`j'=sprace`j' } forvalues k=1/28{ replace temp`k'=1 if sprace`k'==`i' replace temp`k'=0 if sprace`k'~=`i' } egen count`i'=rsum(temp1-temp28) drop temp1-temp28 } hope this helps, Tim On Fri, Oct 31, 2008 at 2:53 PM, Michelle Debbink <mdebbink@med.umich.edu> wrote: > Hi All - New to the listserv and seem to be running into an issue with a forvalues loop. We have a categorical variable for the race/ethnicity of a list of contacts for each respondent to a survey up to 28 contacts. Some respondents have fewer than 28 contacts and so have missing data for some contact entries. We would like to sum the number of contacts of each race for each respondent (so as to have a variable for number of white contacts, number of black contacts, etc). In order to sum the contacts, we need to make a dummy variable for each contact regarding their race, and missing values must be replaced with zero so that the sum isn't returned as missing. We have tried each of the following forvalues loops but it seems to not be working (all return "_=invalid name") and we would appreciate any guidance you could give. > > // generate dummy variables for ethnicity of all sex partners in last 12mo and replace missing with 0 > forvalues i = 1/28 { > tab sprace`i', gen(sprace`i'cat_) > replace sprace`i'cat_* =0 if sprace`i'==. > } > > //generate an identical variable that has no missing values (which we could then use to make the dummy variables to sum) > forvalues `i'=1/28{ > if sprace`i'!=. { > gen spracem`i'=sprace`i' > } > else{ > gen spracem`i'=0 > } > } > > //sum across all the new dummy variables to get number of contacts of each race > forvalues i=1/28{ > gen numwhitepart = sum(sprace`i'cat_1) > gen numblkpart=sum(sprace`i'cat_2) > gen numhispart=sum(sprace`i'cat_3) > } > * * 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/

- Prev by Date:
**RE: st: Please help with maximum likelihood (method lf)** - Next by Date:
**st: Ologit in Panel Data** - Previous by thread:
**st: Please help with maximum likelihood (method lf)** - Next by thread:
**st: Ologit in Panel Data** - Index(es):

© Copyright 1996–2014 StataCorp LP | Terms of use | Privacy | Contact us | What's new | Site index |