合并R中的两个列表(多对多关系)

jul*_*635 0 merge join r list

我正在尝试在R中合并2个列表。该列表的名称应用于执行连接。这是一个玩具示例:

> list1 <- list(A=c(1,2,3), B=c(2,4,5,6), C=c(1,3))
> list2 <- list(A=c(w,x), B=c(y,z))
Run Code Online (Sandbox Code Playgroud)

最终的合并列表应如下所示:

$w
[1] 1 2 3
$x
[1] 1 2 3
$y
[1] 2 4 5 6
$z
[1] 2 4 5 6
Run Code Online (Sandbox Code Playgroud)

到目前为止,我唯一的想法是将列表转换为数据帧,并使用合并功能。还有什么更简单的事情吗?

非常感谢你的帮助。

And*_*ald 5

希望这是您想要的东西吗?实际上,您根本不需要list2。由于列表实际上是向量,因此我们可以使用命名的向量来“查找”所需的值list1,然后将这些名称分配给新列表

list1 <- list(A=c(1,2,3), B=c(2,4,5,6), C=c(1,3))

lookup <- c(w = "A",x = "A",y = "B",z = "B")

list2 <- list1[lookup]

names(list2) <- names(lookup)

list2
$w
[1] 1 2 3

$x
[1] 1 2 3

$y
[1] 2 4 5 6

$z
[1] 2 4 5 6
Run Code Online (Sandbox Code Playgroud)