小编Ant*_*lis的帖子

如何仅识别"不重复"的行

我有这种情况.多个data.table"rbinded".

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)
Run Code Online (Sandbox Code Playgroud)

我想只获取不重复的行,如:

id  dsp status
1   6   FALSE
2   6   FALSE
3   9   FALSE
4   8   FALSE
4   NA  TRUE
Run Code Online (Sandbox Code Playgroud)

所以我试过了

Resultdt<-Bigdt[!duplicated(Bigdt)]
Run Code Online (Sandbox Code Playgroud)

但结果是:

id  dsp status
1   5   FALSE
2   6   TRUE
3   7   FALSE
4   8   TRUE
Run Code Online (Sandbox Code Playgroud)

与我的期望不符.我尝试了不同的方法(因为rbind不是强制性的),例如merge,join等,data.table包似乎可能是包含解决方案的那个......显然.有任何想法吗?

r data.table

7
推荐指数
1
解决办法
274
查看次数

标签 统计

data.table ×1

r ×1