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
w...@nceas.ucsb.edu
(406) 529-9722
home email: alis...@gmail.com

        [[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.

Reply via email to