【发布时间】:2013-11-11 04:40:49
【问题描述】:
假设有3个数据表:
dt1<-data.table(Type=c("a","b"),x=1:2)
dt2<-data.table(Type=c("a","b"),y=3:4)
dt3<-data.table(Type=c("c","d"),z=3:4)
我想将它们合并到 1 个数据表中,所以我这样做:
dt4<-merge(dt1,dt2,by="Type") # No error, produces what I want
dt5<-merge(dt4,dt3,by="Type") # Produces empty data.table (0 rows) of 4 cols: Type,x,y,z
有没有办法让 dt5 变成这样?:
> dt5
Type x y z
1: a 1 3 NA
2: b 2 4 NA
3: c NA NA 3
4: d NA NA 4
【问题讨论】:
-
查看
merge的帮助条目。有一个参数叫做all。 -
+1 用于简短的独立可重现示例,具有所需的结果和您尝试做的事情。这是如何纠正问题的一个很好的例子,我很惊讶它没有得到更多的支持。
-
@SimonO101,出于同样的原因,我给了它一个 +1。我很惊讶那里实际上有反对票。
-
@AnandaMahto 我没有注意到这一点。太令人失望了。
标签: r merge data.table