在R中以单独的顺序追加两个嵌套列表的元素

在R中以单独的顺序追加两个嵌套列表的元素,r,R,我尝试根据元素id将元素github从listA附加到listB。如何实现这一点 G1 <- list(id = "aaa", github = "www.github.aaa") G2 <- list(id = "bbb", github = "www.github.bbb") R1 <- list(id = "aaa", reddit = "www.reddit.aaa") R2 <- list(id = "bbb", reddit = "www.reddit.bb

我尝试根据元素id将元素github从listA附加到listB。如何实现这一点

G1 <- list(id = "aaa", github = "www.github.aaa")
G2 <- list(id = "bbb", github = "www.github.bbb")

R1 <- list(id = "aaa", reddit = "www.reddit.aaa")
R2 <- list(id = "bbb", reddit = "www.reddit.bbb")

listA <- list(G1, G2)
listB <- list(R2, R1)
我想做的是:

> listB
[[1]]
[[1]]$id
[1] "bbb"

[[1]]$reddit
[1] "www.reddit.bbb"

[[1]]$github
[1] "www.github.bbb"


[[2]]
[[2]]$id
[1] "aaa"

[[2]]$reddit
[1] "www.reddit.aaa"

[[1]]$github
[1] "www.github.aaa"
我尝试使用mapply,但它没有给我预期的结果。相反,它跨越了两个列表:

> mapply(c, listA, listB, SIMPLIFY=FALSE)
[[1]]
[[1]]$id
[1] "aaa"

[[1]]$github
[1] "www.github.aaa"

[[1]]$id
[1] "bbb"

[[1]]$reddit
[1] "www.reddit.bbb"


[[2]]
[[2]]$id
[1] "bbb"

[[2]]$github
[1] "www.github.bbb"

[[2]]$id
[1] "aaa"

[[2]]$reddit
[1] "www.reddit.aaa"

谢谢

一种可能是将它们转换为data.frames并执行合并:

这是回报

   id         github         reddit
1 aaa www.github.aaa www.reddit.aaa
2 bbb www.github.bbb www.reddit.bbb

抱歉,我刚刚添加了一个可复制的示例,OP和future readers,在R中,data.frames是等长原子向量的列表。
merge(do.call(rbind, lapply(listA, data.frame, stringsAsFactors=FALSE)),
      do.call(rbind, lapply(listB, data.frame, stringsAsFactors=FALSE)), by="id")
   id         github         reddit
1 aaa www.github.aaa www.reddit.aaa
2 bbb www.github.bbb www.reddit.bbb