我一直在努力解决这个问题,可以归结为:
我有以下两个向量(实际上是两个不同数据帧中的列):
TIME <- 2000+1:3
ID <- c("A", "B")
我想要这个输出
ID2 <- c("A", "A", "A", "B", "B", "B")
TIME2 <- c(2000+1:3, 2000+1:3)
data.frame(ID2, TIME2)
组合数据集的常用方法(我通常使用dplyr)假设两个数据集之间存在共享值,或者组合为单独的行,并且似乎不符合目的。 我还研究了在for循环中创建它。 (为ID2中的每个唯一值和时间添加一行到一个新的数据帧中,但我无法弄明白,在我看来,我似乎陷入了错误的思考方式。
我猜一种方法可能是重复每个唯一ID(长度(TIME)) - 时间到一个向量中,然后用一个重复TIME(长度(唯一(ID))的向量来重复。
或许你有一个优雅的解决方案?
答案 0 :(得分:0)
感谢Ronak Shah和amrrs都回答了这个问题。 两种解决方案都有效。
expand.grid(TIME, ID)
tidyr::crossing(TIME,ID)