[R] Applying do.call to a data.frame using function arguments
nabble.30.miller_2555 at spamgourmet.com
Wed Aug 26 18:20:40 CEST 2009
I'm trying to convert a data.frame to a series of strings (row-wise). There
was a very good discussion awhile back (2002) entitled "[R] string
concatenate across rows of a matrix??" where Tony Plate recommended the
following two alternatives (x2 is an R object of type data frame -- a matrix
also works for solution #1):
1) apply(format(x2), 1, paste, collapse=" ");
I applied each solution to a 1000x7 data frame, and found the do.call
function takes <75% of the average time taken by the apply function on my
particular system (repeated the comparison a few thousand times). I would
like to use the do.call option for the x2 data frame for the increased
performance, but cannot determine how I can also feed arguments to the paste
function (specifically, I am trying to create comma-delimited values instead
of space-delimited with each value wrapped in quotes). For instance:
x2 <- as.data.frame(rbind(c(1,2,3),c(4,5,6))); =>
 " 1\",\"2\",\"3 "
 " 4\",\"5\",\"6 "
This result is obtained via the following command:
However, I cannot obtain the same result using do.call. The best I have
managed is the following code:
Unfortunately, the list function appears to mangle the data.frame w/r/t the
do.call function. Is anyone aware of the appropriate call (or other
optimized function that runs at least as fast as the do.call function)?
View this message in context: http://www.nabble.com/Applying-do.call-to-a-data.frame-using-function-arguments-tp25151441p25151441.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help