为 R 中的列表列表中的列表提供正确匹配

Cla*_*neo 5 r

我在 R 中有一个列表列表:

a <- list(x=0, y=c(1,2,3), z=4)
b <- list(x=1, y=c(1,2,3), z=44)
c <- list(x=2, y=c(1,2,3), z=444)
L <- list(a,b,c)
Run Code Online (Sandbox Code Playgroud)

对于给定的列表,说

l <- list(x=0, y=c(1,2,3), z=4)
Run Code Online (Sandbox Code Playgroud)

我知道想要找到L我们找到等于 的相应列表的正确索引l

当然,我可以使用循环,但由于L它非常大,我需要一个更快的解决方案。(这里的列表甚至是正确的选择吗?)

akr*_*run 5

我们可以使用stackidenticalbase R

which(sapply(L, function(x) identical(stack(l), stack(x))))
#[1] 1
Run Code Online (Sandbox Code Playgroud)

或更紧凑

which(sapply(L, identical, l))
#[1] 1
Run Code Online (Sandbox Code Playgroud)