# Re: [R] Tagging identical rows of a matrix

From: Douglas Bates (bates@stat.wisc.edu)
Date: Sat 15 May 2004 - 04:52:59 EST

```Message-id: <6r1xlmj0xg.fsf@bates4.stat.wisc.edu>

```

Scott Waichler <scott.waichler@pnl.gov> writes:

> I would like to generate a vector having the same length
> as the number of rows in a matrix. The vector should contain
> an integer indicating the "group" of the row, where identical
> matrix rows are in a group, and a unique row has a unique integer.
> Thus, for
>
> a <- c(1,2)
> b <- c(1,3)
> c <- c(1,2)
> d <- c(1,2)
> e <- c(1,3)
> f <- c(2,1)
> mat <- rbind(a,b,c,d,e,f)
>
> I would like to get the vector c(1,2,1,1,2,3). I know dist() gives
> part of the answer, but I can't figure out how to use it for
> this purpose without doing a lot of looping. I need to apply this
> to matrices up to ~100000 rows.

I believe you want to start with unique which, when applied to a
matrix, provides the unique rows.

> unique(mat)
[,1] [,2]
a 1 2
b 1 3
f 2 1

I'm sure others will be able to provide clever ways of doing the
matching against the unique rows.

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help