Q:

Select a dataset based on different column value but in the same row

I have a dataset with around 80 columns and 1000 Rows, a sample of this dataset follow below:
ID gend.y gend.x Sire   Dam    Weight 
1   M      F     Jim    jud    220 
2   F      F     josh   linda  198
3   M      NA    Claude Bere   200
4   F      M     John   Mary   350
5   F      F     Peter  Lucy   298

And I need select all information that are different between gend.y and gend.x, like this:
ID gend.y gend.x Sire   Dam    Weight 
1   M      F     Jim    jud    220 
3   M      NA    Claude Bere   200
4   F      M     John   Mary   350

Remember, I need to select the another 76 columns too.  
I tried this command: 
library(dplyr)
new.file=my.file %>%
  filter(gend.y ! = gend.x)

But don't worked.  And this message appears: 
Error in Ops.factor(gend.y, gend.x) : level sets of factors are different

A:

As @divibisan said: "Still not a reproducible example, but the error gets you closer.  These 2 variables are factors, The interpretation of a factor depends on both the codes and the "levels" attribute.  Be careful only to compare factors with the same set of levels (in the same order).  You probably want to convert them to character before comparing, or fix the levels to match." 
So I did this (convert them to character):
my.file$new.gend.y=as.character(my.file$gend.y)
my.file$new.gend.x=as.character(my.file$gend.x)

And after I ran my previous command with the new variables (now converted to character):
library(dplyr)
new.file=my.file %>%
  filter(new.gend.y ! = new.gend.x | is.na(new.gend.y ! = new.gend.x))

And now worked as I expected.  Credits @divibisan

