[R] simple matching with R

Jeffrey Robert Spies jspies at nd.edu
Fri Sep 28 18:25:00 CEST 2007

```Not sure how you want to handle the NAs, but you could try the
following:

#start
MalVar29_37 <- read.table(textConnection("V1 V2 V3 V4 V5 V6 V7 V8 V9
0  0  0  0  0  1  0  0  0
0  0  0  0  0  1  0  0  0
0  0  0  0  0  1  0  0  0
NA NA NA NA NA NA NA NA NA
0  1  0  0  0  1  0  0  0"), header=TRUE)

FemVar29_37 <- read.table(textConnection("     V1 V2 V3 V4 V5 V6 V7
V8 V9
1  1  0  0  0  0  0  0  0
0  1  0  0  1  1  0  0  0
1  0  0  1  0  0  0  0  0
0  1  0  0  1  0  0  0  0
0  1  0  0  0  0  0  0  0"), header=TRUE)

comparison <- MalVar29_37 == FemVar29_37

dissimilar <- function(tRow){
length(tRow[tRow==FALSE])
}

dissimilarity <- apply(comparison, c(1), dissimilar)
dissimilarity
# finish

Variable comparison is an entry by entry comparison, resulting in
values of TRUE or FALSE.  I've defined a function dissimilar as the
number of FALSEs in a given object (tRow).  Variable dissimilarity is
then the application of this dissimilar function for each row of
comparison.  In this example, 0 means all of the entries in a row
matche, 9 means none of them matched.  You can see the solution here
in recipe form: http://www.r-cookbook.com/node/40

Hope this helps,

Jeff.

On Sep 28, 2007, at 11:13 AM, Birgit Lemcke wrote:

> Hello!
>
> I am R beginner and I have a question obout a simple matching.
>
> I have to datasets that i read in with:
>
>
> They look like this and show binary variables:
>
>      V1 V2 V3 V4 V5 V6 V7 V8 V9
> 1    0  0  0  0  0  1  0  0  0
> 2    0  0  0  0  0  1  0  0  0
> 3    0  0  0  0  0  1  0  0  0
> 4   NA NA NA NA NA NA NA NA NA
> 5    0  1  0  0  0  1  0  0  0
>
>      V1 V2 V3 V4 V5 V6 V7 V8 V9
> 1    1  1  0  0  0  0  0  0  0
> 2    0  1  0  0  1  1  0  0  0
> 3    1  0  0  1  0  0  0  0  0
> 4    0  1  0  0  1  0  0  0  0
> 5    0  1  0  0  0  0  0  0  0
>
> each with 348 rows.
>
> I would like to perform a simple matching but only row 1 compared to
> row1, row 2 compared to row 2 (paired).......giving back a number as
> dissimilarity for each comparison.
>
> How can i do that?
>
>
> Birgit
>
>
>
>
> Birgit Lemcke
> Institut für Systematische Botanik
> Zollikerstrasse 107
> CH-8008 Zürich
> Switzerland
> Ph: +41 (0)44 634 8351
> birgit.lemcke at systbot.uzh.ch
>
>
>
>
>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help