给出2个长度相同,列名称相同的数据帧列表,将一个列表中每个数据帧的行绑定到另一列表中每个数据帧的正确方法是什么?
一些数据:
list1 <- data.frame("x" = c(1,2), "z" = c(2,3), "y" = c(3,4))
list2 <- data.frame("x" =c(1,2), "z" = c(2,3), "y" = c(3,4))
Mylist1 <- list(list1, list2)
list1 <- data.frame("x" = c(5,6,7), "z" = c(7,8,9), "y" = c(10,11,12))
list2 <- data.frame("x" = c(25,26,27), "z" = c(27,28,29), "y" = c(210,211,212))
Mylist2 <- list(list1, list2)
当前数据:
> Mylist1
[[1]]
x z y
1 2 3
2 3 4
[[2]]
x z y
1 2 3
2 3 4
> Mylist2
[[1]]
x z y
5 7 10
6 8 11
7 9 12
[[2]]
x z y
25 27 210
26 28 211
27 29 212
所需的输出:
> MyNewList
[[1]]
x z y
1 2 3
2 3 4
5 7 10
6 8 11
7 9 12
[[2]]
x z y
1 2 3
2 3 4
25 27 210
26 28 211
27 29 212
答案 0 :(得分:2)
我们可以在此处使用Map
和rbind
这两个列表
Map(rbind, Mylist1, Mylist2)
#[[1]]
# x z y
#1 1 2 3
#2 2 3 4
#3 5 7 10
#4 6 8 11
#5 7 9 12
#[[2]]
# x z y
#1 1 2 3
#2 2 3 4
#3 25 27 210
#4 26 28 211
#5 27 29 212
这也类似于
mapply(rbind, Mylist1, Mylist2, SIMPLIFY = FALSE)
和
purrr::map2(Mylist1, Mylist2, rbind)