[R] listing a sequence of vectors in a matrix

Robin Hankin r.hankin at noc.soton.ac.uk
Tue Aug 22 14:58:47 CEST 2006


Hi



 > f <- function(a,n){(1:a)[1:n]}
 > t(sapply(c(2,3,4,4,4,5,6),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
 >
 >


HTH

rksh





On 22 Aug 2006, at 12:29, Sara-Jane Dunn 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 on...{{dropped}}



More information about the R-help mailing list