如何在列表的每个数据帧中重复并绑定一个数据帧行n次?因此,例如以下列表:
[[1]]
x z y
1 2 3
[[2]]
x z y
4 5 6
如果n为1,这是所需的输出。
[[1]]
x z y
1 2 3
1 2 3
[[2]]
x z y
4 5 6
4 5 6
数据:
list1 <- data.frame("x" = 1, "z" = 2, "y" = 3)
list2 <- data.frame("x" = 4, "z" = 5, "y" = 6)
Mylist <- list(list1, list2)
答案 0 :(得分:1)
我们可以使用lapply
,do.call
,rbind
和rep
。要使用rep
创建复制数据框的列表,请确保使用list
函数覆盖数据框。
lapply(Mylist, function(x){
do.call(rbind, rep(list(x), 2))
})
# [[1]]
# x z y
# 1 1 2 3
# 2 1 2 3
#
# [[2]]
# x z y
# 1 4 5 6
# 2 4 5 6
另一种想法是,只需将行索引复制多次,即可选择行,但是以后可能需要修复行名。
lapply(Mylist, function(x){
x[rep(1, 2), ]
})
# [[1]]
# x z y
# 1 1 2 3
# 1.1 1 2 3
#
# [[2]]
# x z y
# 1 4 5 6
# 1.1 4 5 6