[R] stacking consecutive columns
Graves, Gregory
ggraves at sfwmd.gov
Wed Nov 17 15:03:53 CET 2010
I have a file, each column of which is a separate year, and each row of each column is mean precipitation for that month. Looks like this (except it goes back to 1964).
month X2000 X2001 X2002 X2003 X2004 X2005 X2006 X2007 X2008 X2009
1 1.600 1.010 4.320 2.110 0.925 3.275 3.460 0.675 1.315 2.920
2 2.960 3.905 3.230 2.380 2.720 1.880 2.430 1.380 2.480 2.380
3 1.240 1.815 1.755 1.785 1.250 3.940 10.025 0.420 2.845 2.460
4 3.775 1.350 2.745 0.170 0.710 2.570 0.255 0.425 4.470 1.250
5 4.050 1.385 5.650 1.515 12.005 6.895 7.020 4.060 7.725 2.775
6 8.635 8.900 15.715 12.680 16.270 12.605 7.095 7.025 10.465 7.345
7 5.475 7.955 7.880 6.670 7.955 7.355 5.475 5.650 7.255 7.985
8 8.435 5.525 7.120 6.250 7.150 7.610 5.525 6.500 6.275 10.405
9 5.855 7.830 7.250 7.355 9.715 7.850 6.385 7.960 4.485 7.250
10 7.965 11.915 6.735 8.125 7.855 10.465 4.340 6.165 2.400 3.240
11 1.705 1.525 0.905 1.670 1.840 2.100 0.255 2.830 4.425 1.645
12 2.335 0.840 0.795 1.890 0.145 1.700 0.260 2.160 2.300 2.220
What I want to do is to stack 2008 data underneath 2009 data, 2007 under 2008, 2006 under 2007, etc. I have so far figured out that I can do this with the following clumsy approach:
a=stack(yearmonth,select=c(X2009,X2008))
b=stack(yearmonth,select=c(X2008,X2007))
x=as.data.frame(c(a,b))
write.table(x,"clipboard",sep=" ",col.names=NA) #then paste this back into Excel to get this
values ind values.1 ind.1
1 0.275 X2009 1.285 X2008
2 0.41 X2009 3.85 X2008
3 1.915 X2009 3.995 X2008
4 1.25 X2009 3.845 X2008
5 8.76 X2009 2.095 X2008
6 8.65 X2009 8.29 X2008
7 7.175 X2009 9.405 X2008
8 7.19 X2009 13.44 X2008
9 8.13 X2009 7.245 X2008
10 1.46 X2009 5.645 X2008
11 2.56 X2009 0.535 X2008
12 5.01 X2009 1.225 X2008
13 1.285 X2008 0.72 X2007
14 3.85 X2008 1.89 X2007
15 3.995 X2008 1.035 X2007
16 3.845 X2008 2.86 X2007
17 2.095 X2008 3.785 X2007
18 8.29 X2008 9.62 X2007
19 9.405 X2008 9.245 X2007
20 13.44 X2008 5.595 X2007
21 7.245 X2008 8.4 X2007
22 5.645 X2008 6.705 X2007
23 0.535 X2008 1.47 X2007
24 1.225 X2008 1.665 X2007
Is there an easier, cleaner way to do this? Thanks.
Gregory A. Graves, Lead Scientist
Everglades REstoration COoordination and VERification (RECOVER)
Restoration Sciences Department
South Florida Water Management District
Phones: DESK: 561 / 682 - 2429
CELL: 561 / 719 - 8157
More information about the R-help
mailing list