(a) If what you're trying to do is just apply exp, or any other element-wise function, you can just say "exp(mtx)". You avoid both "apply" and the transpose, and save time in the bargain. If your actual function really does depend on multiple elements, it may be a little more complicated. You could conceivably write a "myapply" function to do the apply followed by the transpose, but then of course you still need to keep track of which way you're going.
(b) You want to look into the "drop = FALSE" option: Sub.mtx <- mtx[,1,drop = FALSE] Hope this helps, Matt Wiener -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Chalasani, Prasad Sent: Thursday, May 19, 2005 10:37 AM To: [email protected] Subject: [R] R annoyances Dear R Folks, I'm a big fan of R, but there are a couple of things that repeatedly annoy me, and I wondered if anyone has neat ways to deal with them. (a) When using "apply" row-wise to a matrix, it returns the results column-wise, and to preserve the original orientation, I've to do a transpose. E.g. I've to keep doing a transpose, which I consider to be quite annoying. transformed.mtx <- t(apply( mtx, 1, exp)) (b) When extracting 2 or more columns of a matrix, R returns the result as a matrix, BUT when extracting just one column, it returns a vector/array, rather than a matrix, so I've to keep doing as.matrix, which is annoying. sub.mtx <- as.matrix(mtx[,1]) Of course I could write a suitable function cols <- function(mtx,range) as.matrix(mtx[, range]) but then I lose the syntactic sugar of being able to say "[,1]". ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
