Bookmark and Share

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: AW: st: AW: Syntax forvalues in Stata 11 SE


From   Gauri Khanna <[email protected]>
To   Stata List <[email protected]>
Subject   RE: AW: st: AW: Syntax forvalues in Stata 11 SE
Date   Thu, 23 Sep 2010 12:36:39 +0000

Hi,


Here is the error with - set trace on - 

. set trace on 

. forvalues svy = 1/`max1' { 
  2.         use `allsvys', clear
  3.         keep if i==`svy'
  4. }
- forvalues svy = 1/`max1' {
= forvalues svy = 1/ {
invalid syntax
r(198);

Many thanks, Gauri (a she)

----------------------------------------
> From: [email protected]
> To: [email protected]
> Subject: AW: st: AW: Syntax forvalues in Stata 11 SE
> Date: Thu, 23 Sep 2010 14:31:54 +0200
>
>
> <>
>
>
> -set trace on- and show us the area around the error...
>
>
>
> HTH
> Martin
>
>
> -----Ursprüngliche Nachricht-----
> Von: [email protected]
> [mailto:[email protected]] Im Auftrag von Gauri Khanna
> Gesendet: Donnerstag, 23. September 2010 14:28
> An: Stata List
> Betreff: RE: st: AW: Syntax forvalues in Stata 11 SE
>
> Hello Nick, Martin and Neil,
>
> I have tried what you suggested and I still get the following error:
>
> . forvalues svy = 1/`max1' {
>   2.         use "`allsvys'", clear
>   3.         keep if i==`svy'
>   4. }
> invalid syntax
> r(198);
>
> If I remove the double quotes around -allsvys- I get the same error:
>
> . forvalues svy = 1/`max1' {
>   2.         use `allsvys', clear
>   3.         keep if i==`svy'
>   4. }
> invalid syntax
> r(198);
>
>
> Many thanks for your continued attention.
>
> Gauri
>
> ----------------------------------------
>> From: [email protected]
>> To: [email protected]
>> Date: Thu, 23 Sep 2010 13:18:36 +0100
>> Subject: RE: st: AW: Syntax forvalues in Stata 11 SE
>>
>> As you say, 'allsyvs' will not work in Stata 11 (or 10 (or ...))) because
> it is incorrect.
>>
>> "`allsyvs'" is the appropriate call.
>>
>> The " " are needed if the filename contains any spaces.
>>
>> This all presumes that a local macro has been defined upstream of the code
> you cite.
>>
>> Nick
>> [email protected]
>>
>> Gauri Khanna
>>
>> Thank you for your responses Martin, Neil and Nick.
>>
>> I have defined -local-max1 and here is a more detailed code which shows
> temporary files as well as draws on other previously saved datasets. I have
> ended the do file abruptly to try and isolate the syntax problem.
>>
>> The codes work up to the -forvalues- codes which is the last three lines.
>>
>> Note that I changed the syntax for the temporary files from ` to ' i.e.
> `allsvys' to 'allsyvs' which did not run in Stata 11.
>>
>> Thanks. Gauri
>>
>> ****************************
>> use "reshape.dta", clear
>> gen totalind=0
>>
>> append using "D:\UnitData\0 NCDInfoBase\1. Analysis Team Only -
> Harmonization\d. Tobacco Use\Datasets - Results\7 total age grp\total age
> raw.dta"
>> replace totalind=1 if totalind==.
>> replace total_age_group=0 if totalind==1
>>
>> gen sex=0 if sex_code==1
>> replace sex=1 if sex_code==2
>>
>> gen agegrp=1 if midage<17
>> replace agegrp=0 if start_age==16 & end_age==16
>> replace agegrp=0 if agegrp==.
>>
>> *drop untrustworthy WHS, they are BIH, Kazah & Slovakia
>> *drop if source_code==101692 | source_code==101731 (commented out, reg
> models already exclude those surveys)
>>
>> *tab un_region if lgsmkd !=. & lgsmkc !=. & sex!=. & total_age_group!=1
>> *tab un_region
>>
>> gen lgsmkd=.
>> gen lgsmkc=.
>> gen lgcigd=.
>> gen lgcigc=.
>> gen agesmkd=.
>> gen agesmkc=.
>> gen agecigd=.
>> gen agecigc=.
>>
>> gen smk_d_est=.
>> gen smk_c_est=.
>> gen cig_d_est=.
>> gen cig_c_est=.
>>
>> gen str60 trace21=""
>>
>> gen r2d=.
>> gen r2c=.
>>
>> gen un_region2=un_region
>> replace un_region2="Oceania" if un_region =="Melanesia" |
> un_region=="Polynesia" | un_region=="Micronesia"
>> replace un_region2="Eastern Europe" if un_name=="Armenia" |
> un_name=="Azerbaijan" | un_name=="Georgia" | un_name=="Turkey" |
> un_name=="Uzbekistan" | un_name=="Turkmenistan" | un_name=="Kazakhstan" |
> un_name=="Kyrgyzstan" | un_name=="Tajikistan"
>> replace un_region2="Southern Europe" if un_name=="Cyprus" |
> un_name=="Israel"
>>
>> *save `allsvys1', replace /*OLD CODE: STATA 9*/
>> save "'allsvys1'", replace
>> drop if sex_code!=3 & total_age_group!=1 & agegrp==0
>> save "conversion1.dta", replace
>>
>> ****Regression****
>>
>> **for age 16 and more**
>>
>> set more off
>> set matsize 5000
>>
>> *use `allsvys1', clear /*OLD CODE: STATA 9*/
>> use "'allsvys1'", clear
>> egen i=group(un_region2 sex_code) if sex_code!=3 & total_age_group!=1 &
> agegrp==0
>> summarize i
>> local max1=r(max)
>> gen error1=.
>> gen error2=.
>> *save `allsvys', replace /*OLD CODE: STATA 9*/
>> save "'allsvys'", replace
>>
>> forvalues svy = 1/'max1' {
>> use "`allsvys'", clear
>> keep if i==`svy'
>> }
>>
>>
>> Thanks,
>>
>> Gauri
>>
>> ----------------------------------------
>>> From: [email protected]
>>> To: [email protected]
>>> Subject: st: AW: Syntax forvalues in Stata 11 SE
>>> Date: Thu, 23 Sep 2010 13:55:33 +0200
>>>
>>>
>>> <>
>>>
>>>
>>> How and when is -local- "max1" defined in your code? See this code:
>>>
>>>
>>> *************
>>> loc max1 2
>>> forv i=1/`max1'{
>>> di `i'
>>> }
>>>
>>> loc max1
>>> forv i=1/`max1'{
>>> di `i'
>>> }
>>> *************
>>>
>>>
>>>
>>> HTH
>>> Martin
>>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: [email protected]
>>> [mailto:[email protected]] Im Auftrag von Gauri Khanna
>>> Gesendet: Donnerstag, 23. September 2010 13:53
>>> An: Stata List
>>> Betreff: st: Syntax forvalues in Stata 11 SE
>>>
>>>
>>> Hi,
>>>
>>> I am a new user to the Stata 11.1 SE
>>>
>>> I have run into syntax problems with the - forvalues- command while
> creating
>>> a loop.
>>>
>>> My syntax which comes from Stata 9 is the following:
>>>
>>> forvalues svy = 1/`max1' {
>>> use "'allsvys'", clear
>>> keep if i==`svy'
>>> }
>>>
>>> and I get the following error :
>>>
>>> invalid syntax
>>> r(198);
>>>
>>> Subsequently, i would also like to run the following syntax (shortened
> for
>>> convenience)
>>>
>>> foreach x of local names {
>>> if "`x'"=="lgsmkc" {
>>> display "`x'"
>>> gen row`j'=lgcigc
>>> local j=`j'+1
>>> }
>>> }
>>>
>>> Can anyone help?
>>
>> *
>> * 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/
 		 	   		  
*
*   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/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index