将数据帧作为一个整体复制 n 次

标签 r dataframe rep

我试图将一个数据帧(动物园对象)作为一个整体复制 50 次,并将结果作为矩阵,但我尝试过的所有命令似乎都不成功。我可以轻松地编写一个函数来执行此操作,但我希望使用 rep 可以轻松实现结果。 .

以以下为例

 x <- zoo(data.frame(A = c(1,2,3,4,5,6), B = c(7,8,9,10,11,12), C = c(13,14,15,16,17,18)), order.by = seq(as.Date("2012-01-01"), as.Date("2012-06-01"), by  = "month"))

 #> x
 #           A  B  C
 #2012-01-01 1  7 13
 #2012-02-01 2  8 14
 #2012-03-01 3  9 15
 #2012-04-01 4 10 16
 #2012-05-01 5 11 17
 #2012-06-01 6 12 18

让我们试着复制 x 2次。我正在寻找的最终结果是:
 #      [,1] [,2] [,3]
 # [1,]    1    7   13
 # [2,]    2    8   14
 # [3,]    3    9   15
 # [4,]    4   10   16
 # [5,]    5   11   17
 # [6,]    6   12   18
 # [7,]    1    7   13
 # [8,]    2    8   14
 # [9,]    3    9   15
 #[10,]    4   10   16
 #[11,]    5   11   17
 #[12,]    6   12   18

这是我迄今为止尝试过的,但这些都不起作用:
 matrix(rep(x,2), ncol = 3, byrow = T)

或者
 matrix(rep(x,2), ncol = 3, byrow = F)

或者
 matrix(rep(x, each = 2), ncol = 3)

有人可以帮忙吗?

谢谢,

最佳答案

coredata(x)[rep(seq(nrow(x)),50),]
       A  B  C
  [1,] 1  7 13
  [2,] 2  8 14
  [3,] 3  9 15
  [4,] 4 10 16
  [5,] 5 11 17
  [6,] 6 12 18
...snip...
[295,] 1  7 13
[296,] 2  8 14
[297,] 3  9 15
[298,] 4 10 16
[299,] 5 11 17
[300,] 6 12 18

关于将数据帧作为一个整体复制 n 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18488716/

相关文章:

r - 如何在 R 中拆分 'CHR' 列?

python - 删除列表中小于 3 位的数字,同时项目数量保持不变

r - 调整基础图形图例标签宽度

r - Adobe Analytics API 请求使用 RSiteCatalyst 包获得排名报告。总计与我在仪表板前端看到的不符

r - 如何将模型保存为带循环的矢量?

python - 在 Python 中并排显示数据帧的唯一值和计数

r - 使用一个函数和一个参数生成两个序列

r - 根据计算在数据框中插入行

r - R中没有组的行的合并和部分添加