R使用相同的rowcount和index列连接两个数据集

时间:2015-04-21 03:31:27

标签: r join merge left-join dplyr

我有两个数据集dataset1

 Id   A    B
 1    Y    N
 2    N    N
 3    Na   Na
 4    Y    Y

数据集2

 Id   A    C
 1    Y    Y
 2    N    Y
 3    Na   N
 4    Y    N

我正在尝试根据它们的ID列连接这两个数据集,并生成像这样的数据集

 Id   A    B    C
 1    Y    N    Y
 2    N    N    Y
 3    Na   Na   N
 4    Y    Y    N

当我尝试使用left_join(dataset1,datase2,by =“ID”)时,我会获得比预期更多的行,比如

 Id   A    B    C
 1    Y    N    Y
 2    N    N    Y
 2         N    
 3    Na   Na   N
 3              N
 4    Y    Y    N

当我进行合并时,合并(dataset1,dataset2)相反,我得到的行数较少,有人可以告诉我哪里出错了,抱歉这让我发疯了。

1 个答案:

答案 0 :(得分:1)

以下是我的试用版。

df1 <- data.frame(Id = 1:4,
                  A = c("Y","N",NA,"Y"),
                  B = c("N","N",NA,"Y"))
df2 <- data.frame(Id = 1:4,
                  A = c("Y","N",NA,"Y"),
                  C = c("Y","Y","N","N"))
merge(df1, df2, by="Id")
  Id  A.x    B  A.y C
1  1    Y    N    Y Y
2  2    N    N    N Y
3  3 <NA> <NA> <NA> N
4  4    Y    Y    Y N

您可以从left_join(dataset1, datase2, by="ID")重试left_join(dataset1, datase2, by="Id")