在R中以单独的顺序追加两个嵌套列表的元素
我尝试根据元素id将元素github从listA附加到listB。如何实现这一点在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
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