[R] Column order in stacking/unstacking

From: Matthew Carroll <mjc510_at_york.ac.uk>
Date: Sat, 12 Mar 2011 09:30:14 +0000


Dear R users,

I'm having some problems with the stack() and unstack() functions, and wondered if you could help.  

I have a large data frame (400 rows x 2000 columns), which I need to reduce to a single column of values (and therefore 800000 rows), so that I can use it in other operations (e.g., generating predictions from a GLM object). However, the problem I'm having can be reproduced with something as simple as this:  

> testdat <- data.frame("1" = c(1:5), "2" = c(1:5), "10" = c(1:5))

> testdat

  X1 X2 X10

1 1 1 1

2 2 2 2

3 3 3 3

4 4 4 4

5 5 5 5  

Please note that the numeric column names are what I'm dealing with in my real data frame too. Stacking into a long format works fine:  

> stacked <- stack(testdat)

> stacked

   values ind

1 1 X1

2 2 X1

3 3 X1

4 4 X1

5 5 X1

6 1 X2

7 2 X2

8 3 X2

9 4 X2

10 5 X2

11 1 X10

12 2 X10

13 3 X10

14 4 X10

15 5 X10  

But the problem I have comes in unstacking, when the order of the columns is changed from the original, to something alphabetical (i.e. X10 goes before X2):  

> unstacked <- unstack(stacked)

> unstacked

  X1 X10 X2

1 1 1 1

2 2 2 2

3 3 3 3

4 4 4 4

5 5 5 5  

Maintaining the order of columns is very important for me, as I'm dealing with spatial data.

Is there a way of modifying the 'form' argument in unstack to maintain numerical ordering of columns? Or, is there a quick way of re-ordering the columns in a data frame into a numerical order? Alternatively, is there another function or package that could do this? I've tried reshape() but it seems very slow when I use my full data frame with it.  

Any help would be very much appreciated,

Many thanks,

Matthew Carroll  

--

Matthew Carroll

Department of Biology (Area 18),

University of York,

E-mail: mjc510_at_york.ac.uk

 


	[[alternative HTML version deleted]]

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
Received on Sat 12 Mar 2011 - 09:35:35 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sat 12 Mar 2011 - 10:40:21 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive