我有不同的角色列表,例如:
list1< - c(“abw”,“afg”,“ago”,“aia”,“alb”,“and”,“ant”,“are”,“arg”,“arm”,“asm”, “ata”,“atf”)list2< - c(“和”,“ant”)list3< - c(“abw”,“…
尝试使用条件索引:
list_final <- list1[!(list1 %in% list2) & !(list1 %in% list3)] > list_final [1] "ago" "aia" "alb" "are" "arg" "arm" "asm" "ata" "atf"
你可以用 setdiff 从向量中删除元素。例如删除 list2 从 list1
setdiff
list2
list1
setdiff(list1, list2)
然后你可以再次删除 list3
list3
setdiff(setdiff(list1, list2), list3)
这可以看起来更干净 %>% 管道运营商来自 magrittr
%>%
magrittr
library(magrittr) list1 %>% setdiff(list2) %>% setdiff(list3)
或者您可以为其定义自己的二元运算符别名 setdiff
`%-%` <- setdiff list1 %-% list2 %-% list3
或者如果你有一堆列表,你可以一次完成所有这些 Reduce
Reduce
Reduce(setdiff, list(list1, list2, list3))