[Rcpp-devel] Joining each row of CharacterMatrix to return a CharacterVector?

hickey at wehi.EDU.AU hickey at wehi.EDU.AU
Mon Dec 10 23:43:13 CET 2012

I preface this by stating that I'm very much a Rcpp beginner who is comfortable in R but I've never before used C++. I'm working through the Rcpp documentation but haven't been able to answer my question.

I've written an Rcpp (v0.10.1) function f that takes as input a CharacterMatrix X. X has 20 million rows and 100 columns. For each row of X the function alters certain entries of that row according to rules governed by some other input variables. f returns the updated version of X. This function works as I'd like it to: 
# a toy example with nrow = 2, ncol = 2
> X <- matrix('A', ncol = 2, nrow = 2)
> X
     [,1] [,2]
[1,] "A"  "A" 
[2,] "A"  "A" 
> X <- f(X, other_input_variables)
> X
     [,1] [,2]
[1,] "Z"  "A" 
[2,] "z"  "A" 

However, instead of f returning a CharacterMatrix as it currently does, I'd like to return a CharacterVector Y, where each element of Y is a "collapsed" row of the updated X.

I can achieve the desired result in R by using: 
Y <- apply(X=X, MARGIN = 1, FUN = function(x){paste0(x, collapse = '')}) 
> Y
[1] "ZA" "zA"

but I wondered whether this "joining" is likely to be more efficiently performed within my function f? If so, how do I join the 100 individual character entries of a row of the CharacterMatrix X into a single string that will then comprise an element of the returned CharacterVector Y?

Many thanks,
Peter Hickey,
PhD Student/Research Assistant,
Bioinformatics Division,
Walter and Eliza Hall Institute of Medical Research,
1G Royal Parade, Parkville, Vic 3052, Australia.
Ph: +613 9345 2324

hickey at wehi.edu.au

The information in this email is confidential and intended solely for the addressee.
You must not disclose, forward, print or use it without the permission of the sender.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20121211/3e795c57/attachment.html>

More information about the Rcpp-devel mailing list