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: conditional "keep" statement
From
David Souther <[email protected]>
To
[email protected]
Subject
Re: st: conditional "keep" statement
Date
Mon, 12 Apr 2010 09:45:23 -0500
>
Yeah, this works on the smaller datasets , but the macro size limit
does make this unusable when the number of variables is in the
thousands. I tried messing with the macro functions to break the
macro "mine" into pieces, but cannot get it to work (or whether that
is really the intention of the "pieces #1 #2" function).
If the macro function idea is a bust, anyone else have some other ideas?
D.S.
On Mon, Apr 12, 2010 at 9:16 AM, Eric Booth <[email protected]> wrote:
>>
>
> You could use the extended macro function "subinstr" to filter the list in a loop (though I wonder if macro length limit will bite if you've got of hundreds or thousands of variable names):
>
> *****
>> local myvars a1 a2 a3 d1
>
> ds
> global mine `r(varlist)'
> di "$mine"
> foreach v in `myvars' {
> di "`v'"
> global mine: subinstr global mine "`v'" "", word all
> }
> di "$mine"
> drop "$mine"
> *****
> This should drop only those in the list that aren't in your `myvars' list.
>
> ~ Eric
> __
> Eric A. Booth
> Public Policy Research Institute
> Texas A&M University
> [email protected]
> Office: +979.845.6754
>
>
>
>
> On Apr 12, 2010, at 8:54 AM, David Souther wrote:
>
>> I'm combining (append & merge) hundreds of files which contain
>> hundreds or thousands of variables each, and at each stage of the
>> merge/append, I'd like to variables only if they are in a list that I
>> specify.
>> The issue is that not all of these datasets contain all the variables
>> in this list. So, if I create a macro of my list,
>>
>> local myvars a1 a2 a3 d1 d2 d3
>>
>> and then specify,
>>
>> keep `myvars'
>>
>> in the loop for each combination of data, I get the error that some
>> variable doesn't exist when it's not in the dataset. I tried getting
>> around this with the -capture- command,
>>
>> cap keep `myvars'
>>
>> and using -ds-
>>
>> ds `myvars'
>> keep `r(varlist)'
>>
>> or,
>>
>> ds `myvars', not
>> drop `r(varlist)'
>>
>> and -ds- in combination with -capture- to no avail. Any other ideas
>> (besides specifying the hundreds of variables to keep for each/every
>> loop)??
>>
>> D.S.
>> *
>> * 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/