[R] convert a vector of words into a matrix

Wacek Kusnierczyk Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Thu Jul 24 11:51:51 CEST 2008


Daren Tan wrote:
> I want the matrix to look like this:
>  
>       [,1] [,2] [,3] [,4]
> [1,] "1" "2" "3"
> [2,] "1" "2" [3,] "1" "2" "4" "5"
>  
> I tried to use do.call(rbind, strings) but failed due to unequal row lengths.
>   
you can't {r,c}bind them because of different lengths.
one way to reach the goal is to pad all vectors with some dummy value
(NA, say), and then bind them.

one way (assuming strings is the list you get out of strsplit):

lengths = sapply(strings, length)
ncol = max(lengths)

t(
    mapply(
       function(vector, length)
            c(vector, rep(NA, ncol-length)),
       strings,
       lengths))

there may be a better way, though.

vQ



More information about the R-help mailing list