比较R中的多维列表

Gue*_*290 2 r vectorization

我有以下两个清单:

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"
Run Code Online (Sandbox Code Playgroud)

我的目标是比较这两个多维列表,结果将是:

[[1]]
[1] FALSE TRUE FALSE FALSE 
[[2]]
[1] TRUE FALSE
[[3]]
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

预先形成此intersect()函数的最佳矢量化方法是什么?

Jil*_*ina 6

这是另一种选择 mapply

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

[[2]]
[1]  TRUE FALSE

[[3]]
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

在哪里First.listSecond.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"))
Run Code Online (Sandbox Code Playgroud)

如果您想知道哪些值是intersect列表的 s,那么试试这个

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

[[2]]
[1] "ff"

[[3]]
character(0)
Run Code Online (Sandbox Code Playgroud)