如果其他在变量上并在R中合并

时间:2019-03-29 10:07:05

标签: r

合并两个数据集时遇到问题。 假设有两个数据集A和B。并且A是通过将X和Y与目标变量为abc合并而形成的。

因此,当我合并A和B时,已经形成的A的结果不会反映在A和B的最终数据集中。 当我合并A和B时,最终数据集中的数据记录数也随之增加。我尝试了unique()和distinct()函数,但无法将它们应用于诸如AgreementID的特定键变量。

1 个答案:

答案 0 :(得分:0)

欢迎来到stackoverflow!

由于缺乏细节,很难确切知道如何解决您的问题。将来,请尝试更精确一些,并举例说明您的数据。

我想象您的两个数据集A和B是数据帧。而不是使用合并尝试cbind。当然,如果您的数据集具有不同的行数,则cbind将不起作用。下面的代码将NA添加到具有最少行数的数据帧。这将使两个数据帧具有相同的行数,因此cbind将起作用。这不是最优雅的解决方案,但它可能会起作用。

if(nrow(A) > nrow(B)){
  num.rows <- nrow(A)
}else{
  num.rows <- nrow(B)
}

if (nrow(A) == num.rows){
  n = nrow(A) - nrow(B)
  new.rows <- data.frame(1:n)
  for(i in 1:nrow(new.rows)){
    new.rows[i,,] <- NA
}
B <- rbind(new.rows, B)

}else{
  n = nrow(B) - nrow(A)
  new.rows <- data.frame(1:n)
  for(i in 1:nrow(new.rows)){
  new.rows[i,,] <- NA
}
B <- rbind(new.rows, B)
}