2013-09-09 2 views
2

У меня есть следующие два список:Сравнение многомерных списков в R

First list: 
[[1]] 
[1] "ab" "iew" "rer" "fdd"  
[[2]] 
[1] "ff" "de 
[[3]] 
[1] "cc" 

Second list: 
[[1]] 
[1] "iew" "vfr" 
[[2]] 
[1] "ff" "cdc" 
[[3]] 
[1] "vf" "cde" 

Моя цель состоит в том, чтобы сравнить эти две многомерных списки, так что результат будет:

[[1]] 
[1] FALSE TRUE FALSE FALSE 
[[2]] 
[1] TRUE FALSE 
[[3]] 
[1] FALSE 

Каков наилучший способ векторизации этой функции intersect()?

ответ

5

Вот альтернатива, используя mapply

> mapply("%in%", Firt.list, Second.list) 
[[1]] 
[1] FALSE TRUE FALSE FALSE 

[[2]] 
[1] TRUE FALSE 

[[3]] 
[1] FALSE 

Где First.list и Second.list являются:

Firt.list <- list(c("ab", "iew", "rer", "fdd"), c("ff", "de"), c("cc")) 
Second.list <- list(c("iew", "vfr"), c("ff", "cdc"), c("vf", "cde")) 

Если вы хотите знать, какие значения являются intersect s из списков, то попробуйте этот

> mapply("intersect", Firt.list, Second.list) 
[[1]] 
[1] "iew" 

[[2]] 
[1] "ff" 

[[3]] 
character(0) 
Смежные вопросы