[R] Comparing data frames and keeping non-matches

Pele drdionc at yahoo.com
Wed Mar 11 18:37:36 CET 2009


Hi R users,

I am trying to compare 2 data frames by  subject and match and save the no
matches to an object called nomatch, but I am getting unexpected results...
Can anyone tell me how to correct the code to get the expected results shown
in the last table?

Many thanks in advance for your any help!

library("reshape")

year <- c(2100:2110)
x1 <- c(F,T,T,F,F,F,T,F,T,T,F)
df1 <- data.frame(cbind(year, x1)) 
df1$subject <- c(1,1,1,2,2,3,3,3,3,4,4)
df1$match <- 1; df1

df2 <- data.frame(cbind(year, x1))
df2$subject <- c(1:11)
df2$match <- 1; df2
key <- c("subject", "match")

nomatch <- subset(df2, is.element(df2[,key], df1[,key])==FALSE); nomatch
rm(list=ls())

Unexpected Results
    year x1 subject match
1  2100  0       1     1
3  2102  1       3     1
5  2104  0       5     1
7  2106  1       7     1
9  2108  1       9     1
11 2110  0      11     1


Results I expected

   year x1 subject match
5  2104  0       5     1
6  2105  0       6     1
7  2106  1       7     1
8  2107  0       8     1
9  2108  1       9     1
10 2109  1      10     1
11 2110  0      11     1

-- 
View this message in context: http://www.nabble.com/Comparing-data-frames-and-keeping-non-matches-tp22460451p22460451.html
Sent from the R help mailing list archive at Nabble.com.




More information about the R-help mailing list