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]
st: Re: Accumulating variable names to exclude from a varlist
From
Partho Sarkar <[email protected]>
To
[email protected]
Subject
st: Re: Accumulating variable names to exclude from a varlist
Date
Sun, 4 Mar 2012 14:50:04 +0530
Dear colleagues,
I have been struggling for an hour or so with this problem, which is
probably trivial for those more familiar with Stata macros than I am,
so hope someone can offer a tip w/o too much trouble:
In a part of a program to read in and process data, I want to do the following:
Check a list of variables to see which of them exist in the file being
processed, build up a list of the ones that do exist, and then sort
the data by the existing variables. I have tried to do this as
follows:
--------------------------------------------------CODE
BEGINS-----------------------------------------------------------------------------------
local varlist1 "date commodityid varietyid state district market" //
In the file I am using to test, only 3 of these are present
local except
*
foreach v in `varlist1' {
capture confirm variable `v'
if _rc==0 {
local except `except'
}
else{
local except ` " `except'`v' " ' //
to accumulate the names of
the missing variables (spaces added here between quotes for clarity)
di "`except'" // This works, as the
missing variables show up
cumulatively (w/o any spaces, though, in spite of the double quotes!)
}
local varlist2: list varlist1 - except
// trying to remove the
missing variable from the varlist-obviously this won't work as the
"except" macro resides within the above loop!
di "inner loop_""`varlist2'"
}
--------------------------------------------------CODE
ENDS-----------------------------------------------------------------------------------
I am sure this could be done via global macros, but somehow I took it
as a challenge to do w/o those ( I am also not very sure how to
combine local & global macros)! [ Is delayed macro substitution the
answer? If so, how?]
Sorry if this is too trivial!
Best,
Partho
*
* 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/