多列比较

时间:2013-01-14 14:04:22

标签: r

我遇到这样的情况: 我有一个data.frame,如下所示:

 Col1   Col2  
  a     3.4   
  a     3.4      
  d     3.2   
  c     3.2 

我想要以下输出:

 Col1  Col2  
  a    3.4      
  d    3.2   
  c    3.2 

换句话说,价值" a" in" Col1"将被考虑一次,因为它被完全复制,否则即使是" d"和" c"与" Col2"中报道的相同它会被认为是两次因为它们是不同的实体(" d"不同于" c")

有人可以帮我吗?

2 个答案:

答案 0 :(得分:5)

试试这个:

DF <- read.table(text=" Col1   Col2  
  a     3.4   
  a     3.4      
  d     3.2   
  c     3.2 ", header=T)
aggregate(Col2~Col1, unique, data=DF)
  Col1 Col2
1    a  3.4
2    c  3.2
3    d  3.2

答案 1 :(得分:4)

> df <- read.table(header=T, text='
+  label value
+      A     4
+      B     3
+      C     6
+      B     3
+      B     1
+      A     2
+      A     4
+      A     4
+ ')
> unique(df[duplicated(df),]) # Finds unique duplicated
  label value
4     B     3
7     A     4
> df[duplicated(df),] # Finds Duplicated
  label value
4     B     3
7     A     4
8     A     4
 > df[!duplicated(df),] # Finds rows which are not duplicated
  label value
1     A     4
2     B     3
3     C     6
5     B     1
6     A     2
>