[R] making dataframes

2011-03-16 Thread pelt

Dear all,

I have a dataframe which looks like this (dummy):

date-c(jan, feb, mar, apr, may, june, july, 
aug,sep,oct,nov,dec)

col1-c(8.2,5.4,4.3,4.1,3.1,2.5,1.1,4.5,3.2,1.9,7.8,6.5)
col2-c(3.1,2.3,4.7,6.9,7.5,1.1,3.6,8.5,7.5,2.5,4.1,2.3)
dum-data.frame(cbind(date,col1,col2))
dum
  date col1 col2
1   jan  8.2  3.1
2   feb  5.4  2.3
3   mar  4.3  4.7
4   apr  4.1  6.9
5   may  3.1  7.5
6  june  2.5  1.1
7  july  1.1  3.6
8   aug  4.5  8.5
9   sep  3.2  7.5
10  oct  1.9  2.5
11  nov  7.8  4.1
12  dec  6.5  2.3

I would like to convert this data.frame into something that looks like this:
  date rainfall category
1   jan  8.2  col1
2   feb  5.4  col1
3   mar  4.3  col1
4   apr  4.1  col1
5   may  3.1  col1
6  june  2.5  col1
7  july  1.1  col1
8   aug  4.5  col1
9   sep  3.2  col1
10  oct  1.9  col1
11  nov  7.8  col1
12  dec  6.5  col1
1   jan   3.1 col2
2   feb  2.3 col2
3   mar  4.7 col2
4   apr   6.9 col2
5   may   7.5 col2
6  june   1.1 col2
7  july3.6 col2
8   aug   8.5 col2
9   sep   7.5 col2
10  oct  2.5 col2
11  nov  4.1 col2
12  dec  2.3 col2

So the column-names become categories.  The dataset is rather large with 
many columns and a lengthy date-string. Is there an easy way to do this?


Thank you for your help,

Kind regards,

Saskia van Pelt

__
R-help@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.


Re: [R] making dataframes

2011-03-16 Thread Scott Chamberlain
require(reshape2)
melt(dum, id = 1)
On Wednesday, March 16, 2011 at 9:28 AM, pelt wrote:
Dear all,
 
 I have a dataframe which looks like this (dummy):
 
 date-c(jan, feb, mar, apr, may, june, july, 
 aug,sep,oct,nov,dec)
 col1-c(8.2,5.4,4.3,4.1,3.1,2.5,1.1,4.5,3.2,1.9,7.8,6.5)
 col2-c(3.1,2.3,4.7,6.9,7.5,1.1,3.6,8.5,7.5,2.5,4.1,2.3)
 dum-data.frame(cbind(date,col1,col2))
 dum
  date col1 col2
 1 jan 8.2 3.1
 2 feb 5.4 2.3
 3 mar 4.3 4.7
 4 apr 4.1 6.9
 5 may 3.1 7.5
 6 june 2.5 1.1
 7 july 1.1 3.6
 8 aug 4.5 8.5
 9 sep 3.2 7.5
 10 oct 1.9 2.5
 11 nov 7.8 4.1
 12 dec 6.5 2.3
 
 I would like to convert this data.frame into something that looks like this:
  date rainfall category
 1 jan 8.2 col1
 2 feb 5.4 col1
 3 mar 4.3 col1
 4 apr 4.1 col1
 5 may 3.1 col1
 6 june 2.5 col1
 7 july 1.1 col1
 8 aug 4.5 col1
 9 sep 3.2 col1
 10 oct 1.9 col1
 11 nov 7.8 col1
 12 dec 6.5 col1
 1 jan 3.1 col2
 2 feb 2.3 col2
 3 mar 4.7 col2
 4 apr 6.9 col2
 5 may 7.5 col2
 6 june 1.1 col2
 7 july 3.6 col2
 8 aug 8.5 col2
 9 sep 7.5 col2
 10 oct 2.5 col2
 11 nov 4.1 col2
 12 dec 2.3 col2
 
 So the column-names become categories. The dataset is rather large with 
 many columns and a lengthy date-string. Is there an easy way to do this?
 
 Thank you for your help,
 
 Kind regards,
 
 Saskia van Pelt
 
 __
 R-help@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.
 

[[alternative HTML version deleted]]

__
R-help@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.


Re: [R] making dataframes

2011-03-16 Thread Henrique Dallazuanna
Try this:

reshape(dum, direction = 'long', idvar = 'date', varying =
list(c('col1', 'col2')))

On Wed, Mar 16, 2011 at 11:28 AM, pelt p...@knmi.nl wrote:
 Dear all,

 I have a dataframe which looks like this (dummy):

 date-c(jan, feb, mar, apr, may, june, july,
 aug,sep,oct,nov,dec)
 col1-c(8.2,5.4,4.3,4.1,3.1,2.5,1.1,4.5,3.2,1.9,7.8,6.5)
 col2-c(3.1,2.3,4.7,6.9,7.5,1.1,3.6,8.5,7.5,2.5,4.1,2.3)
 dum-data.frame(cbind(date,col1,col2))
 dum
  date col1 col2
 1   jan  8.2  3.1
 2   feb  5.4  2.3
 3   mar  4.3  4.7
 4   apr  4.1  6.9
 5   may  3.1  7.5
 6  june  2.5  1.1
 7  july  1.1  3.6
 8   aug  4.5  8.5
 9   sep  3.2  7.5
 10  oct  1.9  2.5
 11  nov  7.8  4.1
 12  dec  6.5  2.3

 I would like to convert this data.frame into something that looks like this:
  date rainfall category
 1   jan  8.2  col1
 2   feb  5.4  col1
 3   mar  4.3  col1
 4   apr  4.1  col1
 5   may  3.1  col1
 6  june  2.5  col1
 7  july  1.1  col1
 8   aug  4.5  col1
 9   sep  3.2  col1
 10  oct  1.9  col1
 11  nov  7.8  col1
 12  dec  6.5  col1
 1   jan   3.1 col2
 2   feb  2.3 col2
 3   mar  4.7 col2
 4   apr   6.9 col2
 5   may   7.5 col2
 6  june   1.1 col2
 7  july    3.6 col2
 8   aug   8.5 col2
 9   sep   7.5 col2
 10  oct  2.5 col2
 11  nov  4.1 col2
 12  dec  2.3 col2

 So the column-names become categories.  The dataset is rather large with
 many columns and a lengthy date-string. Is there an easy way to do this?

 Thank you for your help,

 Kind regards,

 Saskia van Pelt

 __
 R-help@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.




-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40 S 49° 16' 22 O

__
R-help@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.


Re: [R] making dataframes

2011-03-16 Thread Bill.Venables
Firstly, the way you have constructed your data frame in the example will 
convert everything to factors.  What you need to do is actually a bit simpler:

###
dum - data.frame(date, col1, col2)
###

One way to turn this into the kind of data frame you want is to convert the 
main part of it to a table first, and then coerce into a data frame:

###
tab - as.table(as.matrix(dum[, -1]))
row.names(tab) - date
names(dimnames(tab)) - c(date, category)
Dum - as.data.frame(tab, responseName = rainfall)
Dum$date - factor(Dum$date, levels = date)
###

Here is a checK:

 head(Dum)

  date category rainfall
1  jan col1  8.2
2  feb col1  5.4
3  mar col1  4.3
4  apr col1  4.1
5  may col1  3.1
6 june col1  2.5

 with(Dum, tapply(rainfall, date, mean))

 jan  feb  mar  apr  may june july  aug  sep  oct  nov  dec 
5.65 3.85 4.50 5.50 5.30 1.80 2.35 6.50 5.35 2.20 5.95 4.40 


Bill Venables.

-Original Message-
From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On 
Behalf Of pelt
Sent: Thursday, 17 March 2011 12:28 AM
To: r-help@r-project.org
Subject: [R] making dataframes

Dear all,

I have a dataframe which looks like this (dummy):

date-c(jan, feb, mar, apr, may, june, july, 
aug,sep,oct,nov,dec)
col1-c(8.2,5.4,4.3,4.1,3.1,2.5,1.1,4.5,3.2,1.9,7.8,6.5)
col2-c(3.1,2.3,4.7,6.9,7.5,1.1,3.6,8.5,7.5,2.5,4.1,2.3)
dum-data.frame(cbind(date,col1,col2))
dum
   date col1 col2
1   jan  8.2  3.1
2   feb  5.4  2.3
3   mar  4.3  4.7
4   apr  4.1  6.9
5   may  3.1  7.5
6  june  2.5  1.1
7  july  1.1  3.6
8   aug  4.5  8.5
9   sep  3.2  7.5
10  oct  1.9  2.5
11  nov  7.8  4.1
12  dec  6.5  2.3

I would like to convert this data.frame into something that looks like this:
   date rainfall category
1   jan  8.2  col1
2   feb  5.4  col1
3   mar  4.3  col1
4   apr  4.1  col1
5   may  3.1  col1
6  june  2.5  col1
7  july  1.1  col1
8   aug  4.5  col1
9   sep  3.2  col1
10  oct  1.9  col1
11  nov  7.8  col1
12  dec  6.5  col1
1   jan   3.1 col2
2   feb  2.3 col2
3   mar  4.7 col2
4   apr   6.9 col2
5   may   7.5 col2
6  june   1.1 col2
7  july3.6 col2
8   aug   8.5 col2
9   sep   7.5 col2
10  oct  2.5 col2
11  nov  4.1 col2
12  dec  2.3 col2

So the column-names become categories.  The dataset is rather large with 
many columns and a lengthy date-string. Is there an easy way to do this?

Thank you for your help,

Kind regards,

Saskia van Pelt

__
R-help@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.

__
R-help@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.