[R] vectors of different length in a matrix

Jari Oksanen jarioksa at sun3.oulu.fi
Mon Aug 22 15:32:21 CEST 2005


On Mon, 2005-08-22 at 16:13 +0300, Jari Oksanen wrote:
> On Mon, 2005-08-22 at 08:56 -0400, Duncan Murdoch wrote:
> > On 8/22/2005 8:45 AM, Marten Winter wrote:
> > > HI!
> > > 
> > > I?ve 3 vectors of different length (a,b,c) and want to arrange them in a 
> > > matrix a,b,c as rows and the figures of these vectors in the columns 
> > > (with that matrix i want to calculate a distance between thes vectors - 
> > > vegan - vegdist - horn). Is there a possibilty to create such a matrix 
> > > and to fill up the missing fields with NA?s automatically????
> > 
> > Filling with NA's is the hard part; R normally likes to recycle vectors 
> > that are too short.
> > 
> > Here's one way, probably not the best:
> > 
> > x <- matrix(NA, 3, max(length(a), length(b), length(c)))
> > x[1,seq(along=a)] <- a
> > x[2,seq(along=b)] <- b
> > x[3,seq(along=c)] <- c
> > 
> > Another way to do it would be to extend all the vectors to the same 
> > length by appending NAs, then using rbind.
> > 
> Another issue is that this would fail at the next step outlined in the
> original message ("vegan - vegdist - horn"), since that step won't
> accept NAs. 

Uh. It seems that I should read the package documentation (and posting
guide which tells me to do so): it seems that vegdist() *can* handle
NAs. I do still think that data with NA probably makes no sense with
alternative "horn".

cheers, jari oksanen




More information about the R-help mailing list