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: st: Selecting variables corresponds to observation numbers


From   Nick Cox <[email protected]>
To   [email protected]
Subject   Re: st: Selecting variables corresponds to observation numbers
Date   Mon, 7 Mar 2011 00:05:36 +0000

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/


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