Here is another variation using Robin's idea of t(sapply(...)) v <- c(3:5, 0) t(sapply(lapply(v, function(n) seq(length = n)), "length<-", max(v) ))
# which can be shortened even further for the case where # there are no zeros in v v <- 3:5 t(sapply(lapply(v, seq), "length<-", max(v) )) On 8/22/06, Robin Hankin <[EMAIL PROTECTED]> wrote: > Gabor makes a good point about seq() vs a:b [a common gotcha > for me]. > > > I'll revise my original function to: > > > f <- function(a,n){(seq(length=a))[1:n]} > > t(sapply(c(2,3,4,4,4,5,6,0),f,n=5)) > [,1] [,2] [,3] [,4] [,5] > [1,] 1 2 NA NA NA > [2,] 1 2 3 NA NA > [3,] 1 2 3 4 NA > [4,] 1 2 3 4 NA > [5,] 1 2 3 4 NA > [6,] 1 2 3 4 5 > [7,] 1 2 3 4 5 > [8,] NA NA NA NA NA > > > > > > > rksh > > On 22 Aug 2006, at 13:55, Gabor Grothendieck wrote: > > > Here are two solutions. seq(length = ...) instead of > > just seq(...) is so that v can possibly contain zeros. > > > > # data > > v <- 3:5 > > > > # solution 1 - rbind/lapply > > f <- function(n) { > > s = seq(length = n) > > replace(rep(NA, max(v)), s, s) > > } > > do.call(rbind, lapply(v, f)) > > > > # solution 2 - loop > > mat <- matrix(NA, length(v), max(v)) > > for(i in seq(v)) { > > s <- seq(length = v[i]) > > mat[i, s] <- s > > } > > > > > > On 8/22/06, Sara-Jane Dunn <[EMAIL PROTECTED]> wrote: > >> Hi, > >> > >> I'm having trouble applying the matrix function. I'd like to be > >> able to > >> create a matrix of vectors filled in by rows, which are not all > >> the same > >> length, and so I need it to fill in NAs where applicable. > >> > >> It's easiest to explain with a simple example: > >> > >> Suppose vec = c(3,4,5). How can I form a matrix of the vectors > >> 1:vec[j] > >> for j=1:3? > >> i.e. 1 2 3 NA NA > >> 1 2 3 4 NA > >> 1 2 3 4 5 > >> I've tried matrix(c(1:vec[j]),nrow=max(j),ncol=max(vec)) but it will > >> only give me a matrix with repeated values for j=1, like 1 2 3 1 > >> 2 > >> 3 1 2 3 1 > >> 2 3 1 2 3 > >> > >> Also using the list function hasn't got me anywhere either.. > >> > >> Any help/ideas would be greatly appreciated! > >> > >> Many thanks, > >> Sara-Jane Dunn > >> > >> -- > >> This message (and any attachments) is for the recipient only... > >> {{dropped}} > >> > >> ______________________________________________ > >> R-help@stat.math.ethz.ch 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. > >> > > > > ______________________________________________ > > R-help@stat.math.ethz.ch 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. > > -- > Robin Hankin > Uncertainty Analyst > National Oceanography Centre, Southampton > European Way, Southampton SO14 3ZH, UK > tel 023-8059-7743 > > ______________________________________________ R-help@stat.math.ethz.ch 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.