How about this: f <- function(a,wh){ ## a is the array; wh is the index to be reversed l<- lapply(dim(a),seq_len) l[[wh]]<- rev(l[[wh]]) do.call(`[`,c(list(a),l)) }
## test z <- array(1:120,dim=2:5) ## I omit the printouts f(z,2) f(z,3) Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Thu, Jun 1, 2017 at 9:51 AM, Roy Mendelssohn - NOAA Federal <roy.mendelss...@noaa.gov> wrote: > Hi All: > > I have been looking for an elegant way to do the following, but haven't > found it, I have never had a good understanding of any of the "apply" > functions. > > A simplified idea is I have an array, say: > > junk(5, 10, 3) > > where (5, 10, 3) give the dimension sizes, and I want to reverse the second > dimension, so I could do: > > junk1 <- junk[, rev(seq_len(10), ] > > but what I am after is a general function that will do that where the array > could be two, three or four dimensions, and I pass to the function which > dimension I want to reverse, that is the function can not assume the number > of dimensions of the array nor which dimension to reverse. > > For example, if i try: > > junk1 <- apply(junk, 2, rev) > > junk1 comes out as two-dimensional, not three-dimensional. > > It is probably something obvious but I am not getting it. > > Thanks for any help. > > -Roy > > > ********************** > "The contents of this message do not reflect any position of the U.S. > Government or NOAA." > ********************** > Roy Mendelssohn > Supervisory Operations Research Analyst > NOAA/NMFS > Environmental Research Division > Southwest Fisheries Science Center > ***Note new street address*** > 110 McAllister Way > Santa Cruz, CA 95060 > Phone: (831)-420-3666 > Fax: (831) 420-3980 > e-mail: roy.mendelss...@noaa.gov www: http://www.pfeg.noaa.gov/ > > "Old age and treachery will overcome youth and skill." > "From those who have been given much, much will be expected" > "the arc of the moral universe is long, but it bends toward justice" -MLK Jr. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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 -- To UNSUBSCRIBE and more, see 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.