Hi

I'm trying to use a loop to generate a set of new variables representing the format of an existing variable list - if the value in the existing variable starts with a number, the corresponding new variable should have a value of 0, and if it starts with a letter, the new variable should have a value of 1.

To do so I've created a local macro with my variables of interest:

local tidycodvar "tidycod tidycod0 tidycod1 tidycod2"

When I ask it to display tidycodvar, it brings up this list correctly.

Then when I run the following loop, I get an error message saying "varlist required". (Note that I've already defined the labels for codf earlier in the do file).

foreach varname of varlist `tidycodvar' {
gen f`varname' = .
replace f`varname' = 0 if regexm(`varname', "^[0-9]")
replace f`varname' = 1 if regexm(`varname', "^[A-Z]")
label values f`varname' codf
label variable f`varname' "Format of COD code"
}

I would be very grateful for any suggestions as to where I'm going wrong.

Many thanks