How to manipulate an abitrary dimensioned array.
Mike Meyer <mikem at salter-point.com> writes:
Thanks for the suggestion. Perhaps I can see how to use apply to get the ratio, but say I also want to return X[,,,,1] in a general way. Maybe I am being dense but I just don't see it --- probably as a result of too much Perl/Python/Java recently that is clouding my mind.
I think Berton was hinting at apply(X,5,"[",1) (it does get trickier if you need X[,,2,,,1] or X[,,3:4,,,1:2] because dimensions tend to get lost on the way into and out of the apply FUN argument.) In general, you can use do.call constructs, with TRUE for the missing arguments (there seems to be no nice way to pass missing to do.call).
So can someone suggest a general function that will give me the last layer of an arbitrary dimensioned array? Berton Gunter wrote:
Why doesn't apply() already do what you want? -- Bert Gunter Genentech Non-Clinical Statistics South San Francisco, CA "The business of the statistician is to catalyze the scientific learning process." - George E. P. Box
-----Original Message----- From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Mike Meyer Sent: Thursday, October 27, 2005 2:50 PM To: r-help at stat.math.ethz.ch Subject: [R] How to manipulate an abitrary dimensioned array. If I have an n1 x n1 x 2 array X I can calculate, say, X[,,1]/X[,,2]. If it is a 4 dimensional array then I want to be able to calculate X[,,,1]/X[,,,2], and similarly for higher dimensions. How can I write a function to do this in a general way without having to do a switch for each possible length(dim(X)). So I want a function g that will take an arbitrary dimensioned array, X, and return X[,,,1]/X[,,,2], etc. I know how to do this by turning X into a vector, then doing the division, then re-shaping as an array, but that doesn't seem very elegant. What I think I am missing is how to paste/substitute/eval a bunch of commas into an array selection. Thanks, --Mike -- Mike Meyer, Seattle WA
______________________________________________ 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
______________________________________________ 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
-- Mike Meyer, Seattle WA
______________________________________________ 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
O__ ---- Peter Dalgaard ??ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907