Here's a solution using pmatch (this gives a “complement” as you wish):
x <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,1,1,1,3) y <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1) res <- x[is.na(pmatch(x,y))]
From the pmatch documentation:
"If duplicates.ok is FALSE, the values of the table after matching are excluded from the search for subsequent matches."