r - 检查列表中的所有元素是否与向量完全匹配

r - check is all elements of a list match a vector exactly

我有一个列表元素 list_1,然后是一个向量 vec_1。我希望能够确定是否在向量中找到了列表元素的所有元素。它们需要完全匹配,如果未找到列表元素,则应打印该元素。例如,如果我循环 list_1[1] 它会返回 TRUE 但如果我循环 list_1[2] 它 returns foobars.

list_1 <- list(x = c("apple", "toast"), y = c("foo", "bar", "bars"))
vec_1 <- c("pear", "apple", "toast", "x", "foos", "bar")

我们可以使用 lapply :

lapply(list_1, function(x) if(all(x %in% vec_1)) TRUE else setdiff(x, vec_1))

#$x
#[1] TRUE

#$y
#[1] "foo"  "bars"