2016-09-01 2 views
3

у меня есть два списка, которые имеют одни и те же векторы, но с различной длинойкак найти элементы из списка, которые не присутствуют в другом списке в г

list1 <- list(a = 1:10, b = 3:20) 
list2 <- list(a = c(2,5,8), b = c(3,5,11,20)) 

Я хотел бы найти элементы каждого вектора в list1 которые отсутствуют в соответствующем векторе в list2. Есть подобные вопросы ответили другие сценарии вместо R.

Я ожидаю, что окончательный список

lst <- list(a=c(1,3,4,6,7,9,10),b=c(4,6:10,12:19)) 

Спасибо за помощь.

ответ

5

Мы можем использовать

mapply(setdiff,list1,list2) 
#$a 
#[1] 1 3 4 6 7 9 10 

#$b 
#[1] 4 6 7 8 9 10 12 13 14 15 16 17 18 19 
+0

Я собирался только спросить в дополнение, можем ли мы предположить, что '' list1' и list2' всегда «выровнены», с тем же числом названных элементов в том же заказ. Если нет, это усложняется. – joran

+0

Хорошо, я не совсем понял это, или, по крайней мере, это было не так ясно, когда я его сначала прочитал. – joran

Смежные вопросы