[R] position of mismatches in all.equal()?

Ivan Calandra ivan.calandra at uni-hamburg.de
Wed Mar 31 17:53:18 CEST 2010


I've actually found a solution to my problem.
In case someone could be interested, the which() function seems to do 
the trick:

 > test2$let2 <- factor(test2$let2, levels=letters[1:10])
 > which(test1[,3]!=test2[,3])
[1] 7
 > which(test1[,1:3]!=test2[,1:3])
[1] 27



Le 3/31/2010 15:13, Ivan Calandra a écrit :
> Dear R users,
>
> I would like to compare two dataframes, actually their categorical 
> variables (as factors) only (there are 12, from column 1 to 12).
> The reason I do that is that I got 2 datasets from two different 
> methods and I would like to be sure that each method used the same 
> data (3D images) to extract 2 different sets of 3D parameters. Is it 
> clear so far?
>
> So I thought about using all.equal() like this:
>
> test1 <- data.frame(num=1:10, let1=letters[1:10], let2=letters[1:10])
> test2 <- data.frame(num=1:10, let1=letters[1:10], let2=letters[c(1:6, 
> 6, 8:10)])
>
> Since I want to compare only some columns, I do this:
> > all.equal(test1[,1:2], test2[,1:2])
> [1] TRUE
> > all.equal(test1[,1:3], test2[,1:3])
> [1] "Component 3: Attributes: < Component 2: Lengths (10, 9) differ 
> (string compare on first 9) >"
> [2] "Component 3: Attributes: < Component 2: 3 string mismatches >"
> [3] "Component 3: 1 string mismatch"
>
> If I get TRUE, then everythin's fine. But if not, I just know from the 
> output in which column(s) are the mismatches and how many (here 1).
> But my datasets are 2000+ rows, and I would like to know the row 
> number(s) where mismatches occur.
>
> How can I do that?
>
> Thank you for your help!
> Regards,
> Ivan
>

-- 
Ivan CALANDRA
PhD Student
University of Hamburg
Biozentrum Grindel und Zoologisches Museum
Abt. Säugetiere
Martin-Luther-King-Platz 3
D-20146 Hamburg, GERMANY
+49(0)40 42838 6231
ivan.calandra at uni-hamburg.de

**********
http://www.for771.uni-bonn.de
http://webapp5.rrz.uni-hamburg.de/mammals/eng/mitarbeiter.php



More information about the R-help mailing list