Is this what you are after:

> more<-c('R is a free software environment for statistical computing',
+         'It compiles and runs on a wide variety of UNIX platforms')
> result<-strsplit(more,' ')
> result
[[1]]
[1] "R"           "is"          "a"           "free"        "software"
   "environment" "for"
[8] "statistical" "computing"

[[2]]
 [1] "It"        "compiles"  "and"       "runs"      "on"        "a"
      "wide"      "variety"
 [9] "of"        "UNIX"      "platforms"

> # determine the longest length to which to pad
> maxLen <- max(sapply(result, length))
> # now pad the vectors in the list
> newResult <- lapply(result, function(x) c(x, rep(NA, maxLen - length(x))))
> # now create your matrix
> newDF <- do.call(data.frame, newResult)
> # add short names
> names(newDF) <- paste("V", seq_len(length(result)), sep = '')
> str(newDF)
'data.frame':   11 obs. of  2 variables:
 $ V1: Factor w/ 9 levels "a","computing",..: 7 6 1 5 8 3 4 9 2 NA ...
 $ V2: Factor w/ 11 levels "a","and","compiles",..: 4 3 2 8 6 1 11 10 5 9 ...
> newDF
            V1        V2
1            R        It
2           is  compiles
3            a       and
4         free      runs
5     software        on
6  environment         a
7          for      wide
8  statistical   variety
9    computing        of
10        <NA>      UNIX
11        <NA> platforms
>


On Sun, Jan 8, 2012 at 9:43 AM, Dan Abner <dan.abne...@gmail.com> wrote:
> Hello everyone,
>
> What is the most efficient & simpliest way to convert all components of a
> list to separate columns in a matrix?
>
> Is there an easy way to programmatically "pad" the length of the resulting
> shorter character vectors so that they can be easily combined into a data
> frame?
>
> I have the following code that stores the 2 compoents (of differing
> lengths) in the same character vector:
>
> more<-c('R is a free software environment for statistical computing',
>         'It compiles and runs on a wide variety of UNIX platforms')
> result<-strsplit(more,' ')
> result
> mode(result)
> class(result)
> sapply(result,length)
> result2<-unlist(result)
> result2
> mode(result2)
> class(result2)
>
> Thank you,
>
> Dan
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to