2013-07-07 40 views
2

我想要在R中使用的大数据集的子集。我通常使用unique命令根据列A获取没有重复数据集的数据集。在此我想要做一些操作有点不同。我期待着以去除甚至原始行如果是在A列 这里重复是一个什么样的数据看起来像一个示例:在R中复制行

Name A B C D E 
JHA 2 45 2 32 20 
OMI 2 49 5 321 5 
FIG 3 17 5 14 10 
GJI 4 35 6 25 22 
IJF 5 25 7 36 32 
OPI 4 10 8 66 25 

,我想使它看起来像这样

Name A B C D E 
FIG 3 17 5 14 10 
IJF 5 25 7 36 32 

有没有一个命令可以做到这一点去?

非常感谢,

+0

相关:[*如何删除所有重复,这样没有一个是留在一个数据帧[*]](https://stackoverflow.com/q/13763216/2204410) – Jaap

回答

4

您可以使用duplicated这样的:

dat[!(duplicated(dat$A)| 
     duplicated(dat$A,fromLast=TRUE)),] 
    A B C D E 
3 3 17 5 14 10 
5 5 25 7 36 32 
+0

是的,它的工作,感谢'formLast'选项:) – Error404

3

另一种方式:

df[!df$A %in% df$A[duplicated(df$A)], ] 
    Name A B C D E 
3 FIG 3 17 5 14 10 
5 IJF 5 25 7 36 32 

(或)

df[!with(df, A %in% A[duplicated(A)]), ] 

(或)

df[with(df, setdiff(A, A[duplicated(A)])), ] 

如果你有兴趣在data.table解决方案的话,你可以这样做:

require(data.table) 
dt <- data.table(df) 
dt[dt[, .I[.N == 1], by = A]$V1] 
+0

Yep @Arun,工作太。多谢你们 – Error404