我有一个数据框,长这样:
stocks <- tibble(
ID = 1:10,
time1 = as.Date('2009-01-01'),
time2 = as.Date('2009-01-02'),
time3 = as.Date('2009-01-03'),
X1 = rnorm(10, 0, 1),
X2 = rnorm(10, 0, 1),
X3 = rnorm(10, 0, 1),
Y1 = rnorm(10, 0, 1),
Y2 = rnorm(10, 0, 1),
Y3 = rnorm(10, 0, 1),
Z1 = rnorm(10, 0, 1),
Z2 = rnorm(10, 0, 1),
Z3 = rnorm(10, 0, 4)
)
我的目标是创建一个类似于这样的数据框:
goal <- tibble(
ID = rep(1, 12),
Time = c(rep(as.Date('2009-01-01'), 9), rep(as.Date('2009-01-02'), 3)),
Group = c("X1", "X2", "X3", "Y1", "Y2", "Y3", "Z1", "Z2", "Z3", "X1", "X2", "X3"),
Numbers = c(-0.46805576, 0.8490237, -1.1647371, -0.7519070, -1.0930102, -1.19820707, 0.302461964,
-1.48164386, -10.0257282, -1.03852259, -0.4597602, -0.8727067)
)
我一直在 struggle with gather 和 melt,但问题似乎是我想要在不同的列中聚合时间,而不是其他数据。有人知道怎么做吗?
提前感谢。