ACTUALIZAR:
Todas las respuestas anteriores no funcionarán para los valores repetidos, la respuesta de @BenBolker usando un duplicated()predicado resuelve esto:
full_vector[!full_vector %in% searched_vector | duplicated(full_vector)]
Respuesta original:
aquí escribo una pequeña función para esto:
exclude_val<-function(full_vector,searched_vector){
found=c()
for(i in full_vector){
if(any(is.element(searched_vector,i))){
searched_vector[(which(searched_vector==i))[1]]=NA
}
else{
found=c(found,i)
}
}
return(found)
}
entonces, digamos full_vector=c(1,2,3,4,1)y searched_vector=c(1,2,3).
exclude_val(full_vector,searched_vector)regresará (4,1), sin embargo, las respuestas anteriores solo devolverán (4).
setdiffes mejor, ya que hace todo en una operación y hace referencia al vector modificado solo una vez.