Мы можем использовать Map
из базы R и создать последовательность индекса строки для подмножеств df1
и df2
и rbind
их. Однако убедитесь, что у вас есть одинаковое количество строк для df1
, а также df2
, иначе вы можете получить неожиданный результат.
Map(function(x, y) rbind(df1[x, ], df2[x, ]), 1:nrow(df1), 1:nrow(df2))
#[[1]]
# n1 mt1
#1 Mike 48
#11 Peter 32
#[[2]]
# n1 mt1
#2 John 64
#21 Chris 23
#[[3]]
# n1 mt1
#3 Steve 32
#31 Brendan 44
#[[4]]
# n1 mt1
#4 Dan 87
#41 Joseph 52
Мы также можем split
каждую строку в списке фреймов данных, а затем rbind
Map(rbind, split(df1, 1:nrow(df1)), split(df2, 1:nrow(df2)))
чья версия purrr
будет
purrr::map2(split(df1, 1:nrow(df1)), split(df2, 1:nrow(df2)), rbind)
Поскольку количество строк одинаковое, мы также можем использовать lapply
lapply(1:nrow(df1), function(x) rbind(df1[x, ], df2[x, ]))