我试图将一个数据帧(动物园对象)作为一个整体复制 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/