[R] Reformat meteorological data

hadley wickham h.wickham at gmail.com
Wed Dec 20 22:31:41 CET 2006


Hi Toby,

Have a look at the reshape package, http://had.co.nz.

Code something like the following should do what you want:

library(reshape)
dfm <- melt(data, id=1:3)
dfm <- rename(dfm, c(variable = "month")) # to make it more obvious

cast(dfm, ... ~ var)

Hadley

On 12/20/06, Toby Gass <tobygass at warnercnr.colostate.edu> wrote:
> Dear HelpeRs:
>
> I have a data set in the following format,
> which will be familiar to those of you working
> with NCDC climate data.
>
> Example:
>
> Year <- rep(1:3, each = 3)
> Year <- c(Year,Year)
> ID <- rep(1:2, each = 9)
> Jan <- runif(18, min = 0, max = 20)
> Feb <- runif(18, min = 0, max = 20)
> Mar <- runif(18, min = 0, max = 20)
> var <- gl(3,1,18,label = c("snow","rain","temp"))
> data <-data.frame(row.names = c(1:18),ID, Year, var, Jan,
> Feb, Mar)
>
>
> The actual dataset has 12 months, about 100 years, 6 ID's,
> many more levels in "var", and includes NA's.
>
>
> I would like to convert the data to the following format:
>
> ID Year Month Rain Snow Temp
> 1     1     Jan     value  value value
> 1     1     Feb     value value value
> 1     1     Mar     value value value
> . . . . .
> . . . . .
> . . . . .
> 1     2     Jan     value value value
> 1     2     Feb     value value value
> 1     2     Mar     value value value
> . . . . . .
> . . . . . .
> . . . . . .
> 1     3     Jan     value value value
> 1     3     Feb     value value value
> 1     3     Mar     value value value
> . . . . . .
> . . . . . .
> 2     1     Jan     value value value
> 2     1     Feb     value value value
> 2     1     Mar     value value value
> . . . . .
> . . . . .
> . . . . .
> 2     2     Jan     value value value
> 2     2     Feb     value value value
> 2     2     Mar     value value value
>
> and so on.
>
> I'd appreciate some code that would help accomplish this.
> Since I'm not an R expert, code that is somewhat transparent
> might be more helpful to me than the shortest possible
> option.
>
> Thank you.
>
>
> Toby Gass
> Department of Forest, Rangeland, and Watershed Stewardship
> Warner College of Natural Resources
> Colorado State University
> Fort Collins, CO  80523
> Phone: 970-491-7257
>
> ______________________________________________
> R-help at stat.math.ethz.ch 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.
>



More information about the R-help mailing list