[R] need help with matrix manipulation

Gabor Grothendieck ggrothendieck at gmail.com
Tue Dec 6 00:56:20 CET 2005


This will give a list, one element per row of oz.gmt, which
contains the differently sized vectors as components:

idx <- seq(along = start.hr)
f <- function(i) oz.gmt[i, start.hr[i]:24]
lapply(idx, f)


On 12/5/05, Jaramillo, Renee <rjaramillo at constellagroup.com> wrote:
> I hope my problem is not too basic to post here.  I am a beginner having
> problems with some matrix manipulation.  The data I am working with are
> sites with hourly ozone readings and is in a matrix where each row is a site
> and each column is an hourly reading.  So for 10 sites, one day's worth of
> data is a 10x24 matrix - column 1 is the ozone measurement for midnight GMT,
> column 2 is ozone at 1:00am GMT, etc.
>
>
>
> My challenge is that I want to create a new matrix with the same sites, BUT
> I want the first column to be the hourly ozone reading at midnight LOCAL
> time.  If all the sites were in the same time zone this would be easy - for
> the US Eastern time zone I could do something like:
>
> oz.est[, 1:19] <- oz.gmt[, 6:24]
>
>
>
> The problem is the sites are in different time zones, and I have a separate
> vector that indicates which site belongs to which time zone.  So sites in
> the Eastern time zone I want to extract columns 6-24 from the GMT matrix,
> sites in the Central time zone I want to extract columns 7-24 from the GMT
> matrix, etc.
>
>
>
> Is there a clever way to use matrix indices on my GMT matrix to extract the
> columns I need for the sites in the different time zones?  I have been
> trying different things like this:
>
>
>
> # VECTOR WITH HOUR TIME DIFFERENCE BETWEEN SITE AND GMT
>
> start.hr <- c(6,7,6,8,7,5,7,6,5,6)
>
>
>
> # THIS DOESN'T WORK
>
> oz.local[ , 1: (24-start.hr) ]  <-  oz.gmt [, (start.hr+1) : 24 ]
>
>
>
> # THIS DOESN'T WORK EITHER
>
> oz.local[ , rep(1,nrow(oz.gmt)) : (24-start.hr) ]  <-  oz.gmt [,
> (start.hr+1) : rep(24,nrow(oz.gmt)) ]
>
>
>
> Ultimately I will be working with over 10,000 sites and hourly data over 3
> months so my data matrix will be something like 10,220 x 2208
>
>
>
>
>
> I'd appreciate any suggestions.  Thanks!
>
> Renee Jaramillo
>
>
>
>
>
>
>
>
>
>
>
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> 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
>




More information about the R-help mailing list