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: loop in variables labels
From
Sergiy Radyakin <[email protected]>
To
"[email protected]" <[email protected]>
Subject
Re: st: RE: loop in variables labels
Date
Mon, 15 Jul 2013 09:38:38 -0400
1) anynumber is assumed to be integer
2) you have to make sure that the target variables do not exist yet.
Best, Sergiy
sysuse auto, clear
generate _31anyword_anyword_anyword=1
describe
mata
vc=0
for(i=1;i<=st_nvar();i++) {
v=st_varname(i)
t=tokens(v,"_")
if (cols(t)==6 & t[1,1]=="_") {
c=1
while(min(ascii(substr(t[1,2],1,c)))>=48 &
max(ascii(substr(t[1,2],1,c)))<=57) c++
vn=substr(t[1,2],c,strlen(t[1,2])-c+1)
c=c-1
vn=vn+"_"+substr(t[1,2],1,c)
stata("rename "+v+" "+vn)
vc++
}
}
printf("{text}Renamed {result:%g} variables",vc)
end
describe
//end of file
On Mon, Jul 15, 2013 at 8:19 AM, Haluk Vahaboglu <[email protected]> wrote:
> Thank you Matt,
> Sure it works but unfortunately my variable numbers are not in a discipline as given in the example.
> In my variable names there are leading "_" s followed by a "number" and "word" "_" "word"....
> Here I want to take the first "number" and put it after the first "word" to get a sequence of "word""_""number" and do this by means of a loop. Do whatever my number or word is.
> Thanks again. Have to wait some more help..
>
>
> Prof. Dr. Haluk Vahaboğlu
> Istanbul Medeniyet
> Üniversitesi,
> Göztepe Eğitim ve Araştırma Hastanesi
> Enfeksiyon Hastalıkları
> ve Klinik Mikrobiyoloji ABD
> Dr. Erkin Caddesi 34730
> Kadıköy / Istanbul TURKIYE
>
>
>
>> From: [email protected]
>> To: [email protected]
>> Date: Mon, 15 Jul 2013 13:01:43 +0100
>> Subject: st: RE: loop in variables labels
>>
>> Hello Haluk,
>>
>> I would try:
>>
>> foreach number in 3 6 9 {
>> rename _`number'_DAYS_X_X DAYS_`number'
>> }
>> foreach number in 3 6 9 and so on {
>> rename _`number'_WEEKS_X_X WEEKS_`number'
>> }
>>
>> You could do this in one nested loop, but that will become complicated if you have more WEEKS variables than DAYS variables. There might be a way to do this in one line using -renvars- (SSC), but even though I do this kind of rename frequently I think it's easier to write a quick loop than figure out the correct syntax.
>>
>> Hope that helps,
>> Matt
>>
>>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]] On Behalf Of Haluk Vahaboglu
>> Sent: 15 July 2013 12:35
>> To: [email protected]
>> Subject: st: loop in variables labels
>>
>> Dear listers,
>>
>> I have some a *.dta file that is imported from an *.xls with some 30 variables named as _3_DAYS_X_X; _6_DAYS_X_X; _9_DAYS_X_X;_3_WEEKS_X_X; _6_WEEKS_X_X; _9_WEEKS_X_X and so on.
>> I want to rename all these var names using a foreach loop to DAYS_3; DAYS_6...;WEEKS_3... and so on.
>> I could not find a help in FAQ or internet search.
>> I would appreciate any help
>>
>> Regards
>>
>> Prof. Dr. Haluk Vahaboğlu
>> Istanbul Medeniyet
>> Üniversitesi,
>> Göztepe Eğitim ve Araştırma Hastanesi
>> Enfeksiyon Hastalıkları
>> ve Klinik Mikrobiyoloji ABD
>> Dr. Erkin Caddesi 34730
>> Kadıköy / Istanbul TURKIYE
>>
>> *
>> * For searches and help try:
>> * http://www.stata.com/help.cgi?search
>> * http://www.stata.com/support/faqs/resources/statalist-faq/
>> * http://www.ats.ucla.edu/stat/stata/
>>
>> ********************************************************************************************************************
>>
>> This message may contain confidential information. If you are not the intended recipient please inform the
>> sender that you have received the message in error before deleting it.
>> Please do not disclose, copy or distribute information in this e-mail or take any action in reliance on its contents:
>> to do so is strictly prohibited and may be unlawful.
>>
>> Thank you for your co-operation.
>>
>> NHSmail is the secure email and directory service available for all NHS staff in England and Scotland
>> NHSmail is approved for exchanging patient data and other sensitive information with NHSmail and GSi recipients
>> NHSmail provides an email address for your career in the NHS and can be accessed anywhere
>>
>> ********************************************************************************************************************
>>
>> *
>> * For searches and help try:
>> * http://www.stata.com/help.cgi?search
>> * http://www.stata.com/support/faqs/resources/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/faqs/resources/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/faqs/resources/statalist-faq/
* http://www.ats.ucla.edu/stat/stata/