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]

From |
Florian Seliger <florian.seliger@gmx.de> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: Renumbering variables in a loop of files |

Date |
Sat, 18 Dec 2010 12:48:02 -0700 |

Your first suggestion is excellent. Thank you. Am 17.12.2010 um 16:24 schrieb Sergiy Radyakin: > On Sat, Dec 18, 2010 at 12:15 AM, Florian Seliger > <florian.seliger@gmx.de> wrote: >> Dear Statalist, >> >> I have again a question concerning numbering IDs in a foreach loop. >> >> I have multiple datafiles for that I have specified a foreach loop. >> Each dataset either contains a variable id_1, id_2, id_3, etc. or only a variable id without a number. >> >> My goal is to assign a number to all IDs in each file. The numbers should reflect the number of the file, e.g. >> >> file no. old variable ---> new variable >> 1 id_1 id_1 >> 2 id_2 id_2 >> 3 id_3 id_3 >> 4 id id_4 >> 5 id_4 id_5 >> 6 id_5 id_6 >> 7 id id_7 >> 8 id_6 id_8 >> ... ... ... . >> > > > Florian, if you only have one variable id* per file the following > should suffice: > > tempvar ID > rename id `ID' > rename `ID' id_`j' > > here the second line delegates to Stata to unabbreviate what id is > (whether it is > id, id2, or id92) and rename it to some temporary name. Then it is renamed to a > properly numbered variable, where j is your file index. We need the temporary > variable to avoid renaming the variable into itself (Stata aborts on > "rename x x"). > Alternatively, add capture, though then you might be missing other important > errors. > > > >> I have specified a command such as the following: >> >> local i=1 >> foreach file ... { >> >> use "`file'", clear >> >> forvalues j=1(1)230 { //230 is the number of files >> capture confirm id_`j' >> >> if _rc==0 { >> sort id_`j' >> capture rename id_`j' id_`i' >> } >> } >> >> else { >> sort id >> rename id id_`i' >> } >> >> >> local ++i >> save "`file'", replace >> } >> >> ***end command*** >> >> With this command, STATA tells me for the first file that id_1 is already defined and stops the loop although I have used a second "capture" before "rename". > > Command -confirm-, such as :confirm variable id_1 > > Example: > capture confirm variable id_`j' > if !_rc break, continue > > > > Best, Sergiy Radyakin > > >> Do you have an idea how I have to rewrite the command? >> >> Thank you very much. >> Best wishes, >> Florian >> >> >> * >> * 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/ * * 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: Renumbering variables in a loop of files***From:*Florian Seliger <florian.seliger@gmx.de>

**Re: st: Renumbering variables in a loop of files***From:*Sergiy Radyakin <serjradyakin@gmail.com>

- Prev by Date:
**Re: st: Renumbering variables in a loop of files** - Next by Date:
**st: Incorporating error into a prevalence measure** - Previous by thread:
**Re: st: Renumbering variables in a loop of files** - Next by thread:
**st: error when using svy probit with xi** - Index(es):