将不同长度的列合并到一个数据帧中

时间:2018-11-20 12:48:05

标签: r

我有以下三个数据集:

CoverageData1:

Class    Coverage
Eval     0.6
Reader   0.96
Eval     0.2
Queue    0.33
Reader   0.5
Reader   0.28
Queue    0.66

CoverageData2:

Class    Coverage
Queue    0.61
Eval     0.02
Eval     0.9
Reader   0.48
Eval     0.99

我想将它们合并到一个数据帧中,例如:

Class   Coverage1   Coverage2
Eval    0.6     0.02
Eval    0.2     0.9
Eval            0.99
Reader  0.96        0.48        
Reader  0.5
Reader  0.28
Queue   0.33        0.61
Queue   0.66

为此,我执行了以下操作:

new_data <- data.frame()
for(class in classes){
  c1 <- CoverageData1$Coverage[CoverageData1$Class == class]
  c2 <- CoverageData2$Coverage[CoverageData2$Class == class]
  new_data <- cbind(new_data,c1)
  new_data <- cbind(new_data,c2)
}

运行此命令时,我一无所获。我在c1和c2中看到了这些数据,但是它们没有合并在new_data中。你知道如何解决吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试

merge(CoverageData1, CoverageData2, by="Class", all.x=TRUE, all.y=TRUE)

有关详细信息,请参见?merge


编辑:您实际上可以尝试使用new_data <- cbind(c1,c2),因为您现在正在尝试使用某些数据来cbind NULL值。