结合R中的数据集:对于两个数据集中的每个值,在第三个数据集

时间:2017-11-13 09:32:27

标签: r

我一直在努力解决这个问题,可以归结为:

我有以下两个向量(实际上是两个不同数据帧中的列):

 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))的向量来重复。

或许你有一个优雅的解决方案?

1 个答案:

答案 0 :(得分:0)

感谢Ronak Shah和amrrs都回答了这个问题。 两种解决方案都有效。

 expand.grid(TIME, ID)
 tidyr::crossing(TIME,ID)