GÜNCELLEME:
Yukarıdaki cevapların tümü tekrarlanan değerler için işe yaramayacaktır, @ BenBolker'in duplicated()
yüklemi kullanan cevabı bunu çözer:
full_vector[!full_vector %in% searched_vector | duplicated(full_vector)]
Orijinal Cevap:
Burada bunun için küçük bir fonksiyon yazıyorum:
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)
}
öyleyse, diyelim full_vector=c(1,2,3,4,1)
ve searched_vector=c(1,2,3)
.
exclude_val(full_vector,searched_vector)
(4,1) döndürür, ancak yukarıdaki yanıtlar yalnızca dönecektir (4)
.
setdiff
her şeyi tek bir işlemde yaptığı ve değiştirilmiş vektöre yalnızca bir kez başvurduğu için daha iyidir.