[R] Matrix subscripting to wrap around from end to start of row

Greg Snow Greg.Snow at imail.org
Thu Oct 14 18:26:28 CEST 2010


You might have better luck reformatting your data as time series, then you can still print it in a matrix like form, but access it serially without worrying about wrapping around rows.

Another option would be to transpose the matrix so that months go down the columns, then use the %% and %/% operators to find the vector indexes of the elements and just access them directly rather than as matrix elements (a matrix is just a vector that knows its dimensions).

-- 
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
801.408.8111


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Alisa Wade
> Sent: Wednesday, October 13, 2010 2:11 PM
> To: r-help at r-project.org
> Subject: [R] Matrix subscripting to wrap around from end to start of
> row
> 
> Perhaps it is just that I don't even know the correct term to search
> for,
> but I can find nothing that explains how to wrap around from the end to
> a
> start of a row in a matrix.
> 
> For example, you have a matrix of 2 years of data, where rows are
> years, and
> columns are months.
> month.data = matrix(c(3,4,6,8,12,90,5,14,22, 8), nrow = 2, ncol=5)
> 
> I would like to take the average of months 5:1  for each year (for row
> 1
> =12.5). However, I am passing the start month (5) and the end month (1)
> as
> variables.
> 
> I would like to do something like
> 
> year.avg = apply(month.data[, start.month:end.month], MARGIN=1, mean)
> 
> But that gives me the average of months 1:5. (for row 1 =9.6)
> 
> I know I could use:
> apply(month.data[, c(1,5)], 1, mean)
> but I don't know how to pass start.month, end.month into that format
> that
> because paste or sprintf forces them to strings, which are not accepted
> in a
> subscript.
> 
> I have the feeling I am unaware of some obvious trick.
> Any ideas would be greatly appreciated!
> 
> *****************************************************
> Alisa A. Wade
> Postdoctoral Center Associate
> National Center for Ecological Analysis and Synthesis
> wade at nceas.ucsb.edu
> (406) 529-9722
> home email: alisaww at gmail.com
> 
> 	[[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.



More information about the R-help mailing list