It would be useful to have indexed both dataframes with a unique identifier, such as in rownames etc.

Without that information, you could possibly try to use the same approach as duplicated() does by "pasting together a character representation of rows" using "|" (or any other separator).

   keys1 <- apply(DF1, 1, paste, collapse="|")
   keys1
   [1] "1|a" "2|b" "3|c" "4|d" "5|e" "6|f"
   duplicated(keys1)
   [1] FALSE FALSE FALSE FALSE FALSE FALSE

   keys2 <- apply(DF2, 1, paste, collapse="|")
   keys2
   [1] "1|a" "2|b" "3|c"
   duplicated(keys2)
   [1] FALSE FALSE FALSE

The duplicated part is neccessary to ensure the key generated is truly unique. You might want to experiment and see if you can create a unique key using just a few columns.


   keys1 %in% keys2
   [1]  TRUE  TRUE  TRUE FALSE FALSE FALSE

   w <- setdiff( keys1, keys2 )
   DF1[ w, ]
      V1 V2
   4  4  d
   5  5  e
   6  6  f

Regards, Adai



joseph wrote:
Hi Jorge
both commands work; can you extend it to several coulmns? the reason I am asking is that in my real data the uniqueness of the rows is made of all the columns; in other words V1 might have duplicates.
Thanks




----- Original Message ----
From: Jorge Ivan Velez <[EMAIL PROTECTED]>
To: joseph <[EMAIL PROTECTED]>
Cc: r-help@r-project.org
Sent: Sunday, September 14, 2008 10:23:33 AM
Subject: Re: [R] difference of two data frames



Hi Joseph,

Try this:


DF1[!DF1$V1%in%DF2$V1,]

subset(DF1,!V1%in%DF2$V1)


HTH,

Jorge


On Sun, Sep 14, 2008 at 12:49 PM, joseph <[EMAIL PROTECTED]> wrote:

Hello
I have 2 data frames DF1 and DF2 where DF2 is a subset of DF1:
DF1= data.frame(V1=1:6, V2= letters[1:6])
DF2= data.frame(V1=1:3, V2= letters[1:3])
How do I create a new data frame of the difference between DF1 and DF2
newDF=data.frame(V1=4:6, V2= letters[4:6])
In my real data, the rows are not in order as in the example I provided.
Thanks much
Joseph



       [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


[[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to