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: Selecting variables corresponds to observation numbers
From
Gordon Hughes <[email protected]>
To
[email protected], [email protected]
Subject
Re: st: Selecting variables corresponds to observation numbers
Date
Mon, 07 Mar 2011 17:50:34 +0000
Thank you, Nick. This is a really nice solution that does the task
much more efficiently than the best method I had come up (using index
vectors in Mata).
There is [sigh] so much to learn about how to get the best out of
Stata's macro language.
Gordon Hughes
[email protected]
------------------------------
Date: Mon, 7 Mar 2011 00:05:36 +0000
From: Nick Cox <[email protected]>
Subject: Re: st: Selecting variables corresponds to observation numbers
forval i = 1/`=_N' {
local varlist `varlist' var`=ind[`i']'
}
keep `varlist'
Nick
On Sun, Mar 6, 2011 at 10:38 PM, Gordon Hughes <[email protected]> wrote:
> I would be very grateful if someone could suggest an efficient way of
> implementing the following task.
>
> I have a dataset with M observations and N variables where N >> M and the
> variables are named var1-varN. In addition, I have an index variable ind
> which takes M unique values in the range 1..N. I want to select the
> variables that correspond to the M index values. For example, the data
> might be
>
> ind var1 var2 var3 var4 var5
> 2 1 2 3 4 5
> 4 6 7 8 9 10
>
> so I want to create a dataset consisting of the following observations &
> variables
>
> ind var2 var4
> 2 2 4
> 4 7 9
>
> However rather than 5 variables and 2 observations I have more like 5000
> variables and 500 observations. I can do this using reshape or xpose and
> merging files, but this is very slow when N > 5000 and I want to repeat the
> exercise many times. Another alternative is to use permutation matrices in
> Mata, since what I am trying to do is equivalent to shuffling rows and
> columns in some rather large matrices. Still, I feel that there
should be a
> cleverer way of doing it by manipulating varlists in Stata but I haven't
> come up with a solution.
>
*
* 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/