合并R中的数据集:对于两个数据集中的每个值,在第三个数据集中创建一个新行[重复]

Posted

技术标签:

【中文标题】合并R中的数据集:对于两个数据集中的每个值,在第三个数据集中创建一个新行[重复]【英文标题】:combining datasets in R: for each value in two datasets, create a new row in third dataset [duplicate] 【发布时间】:2018-04-25 22:33:45 【问题描述】:

我一直在认真思考这个问题,可以归结为:

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

 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 (length(TIME)) 重复到一个向量中,并将其与重复 TIME (length(unique(ID)) 的向量 cbind。

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

【问题讨论】:

expand.grid(TIME, ID) tidyr::crossing(TIME,ID) 一个整洁的解决方案。 为了完整起见,data.table::CJ(ID, TIME) 【参考方案1】:

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

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

【讨论】:

以上是关于合并R中的数据集:对于两个数据集中的每个值,在第三个数据集中创建一个新行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

R语言 箱线图

R:在第一列中按重复项合并行

DataSet——合二为一,合并两个数据集的数据内容

在 R 中匹配和合并具有不同列名的数据集

R语言-merge和rbind

R语言使用fmsb包可视化基本雷达图(radar chart蜘蛛图spider plot)数据预处理(计算每个变量的最大值和最小值并合并到原数据集)可视化单个数据对象的雷达图