【发布时间】:2016-05-27 14:57:14
【问题描述】:
我有这样的情况。 多个data.table“绑定”。
library(data.table)
x <- data.table(id=c(1,2,3,4),dsp=c(5,6,7,8),status=c(FALSE,TRUE,FALSE,TRUE))
y <- data.table(id=c(1,2,3,4),dsp=c(6,6,7,8),status=c(FALSE,FALSE,FALSE,TRUE))
z <- data.table(id=c(1,2,3,4),dsp=c(5,6,9,8),status=c(FALSE,TRUE,FALSE,FALSE))
w <- data.table(id=c(1,2,3,4),dsp=c(5,6,7,NA),status=c(FALSE,TRUE,FALSE,TRUE))
setkey(x,id)
setkey(y,id)
setkey(z,id)
setkey(w,id)
Bigdt<-rbind(x,y,z,w)
我只想获取不重复的行,例如:
id dsp status
1 6 FALSE
2 6 FALSE
3 9 FALSE
4 8 FALSE
4 NA TRUE
所以我尝试了
Resultdt<-Bigdt[!duplicated(Bigdt)]
但是结果:
id dsp status
1 5 FALSE
2 6 TRUE
3 7 FALSE
4 8 TRUE
不符合我的看法。 我尝试了不同的方法(因为 rbind 不是强制性的),例如合并、连接等。 data.table 包似乎可能是包含解决方案的包......显然。有什么想法吗?
【问题讨论】:
-
代码对我来说很好(通过从这里复制粘贴),弗兰克,对不起,但你的代码没有给出预期的结果......
-
正确!抱歉,我会编辑,但是其他行呢?
-
这是我得到的:id dsp status N 1 6 FALSE 1 2 6 FALSE 1 3 9 FALSE 1 4 8 FALSE 1 4 NA TRUE 1
-
这是 R 的一般问题,答案类似于下面的@akrun 之一stackoverflow.com/q/13763216
标签: r data.table