R!按因子水平复制

时间:2015-05-20 21:00:13

标签: r dataframe duplicates

有一种方法可以删除重复的行...

http://www.cookbook-r.com/Manipulating_data/Finding_and_removing_duplicate_records/

我有兴趣做同样的事情,但是我的数据框中的因子水平。

test <- data.frame(fact = c('a','a','a','b','b','b','b','c','c'), id = c('1','1','2','1','2','2','3','1','2'), value = c(1:9))

我想减少我的测试数据框以包含以下内容....

  fact id value
1    a  1     1
3    a  2     3
4    b  1     4
5    b  2     5
7    b  3     7
8    c  1     8
9    c  2     9

即,仅存在id不重复的第一行。 皱纹是它只是因子水平的重复。

2 个答案:

答案 0 :(得分:2)

library(data.table)    
setDT(test)[,.SD[!duplicated(id)],by=fact]

   fact id value
1:    a  1     1
2:    a  2     3
3:    b  1     4
4:    b  2     5
5:    b  3     7
6:    c  1     8
7:    c  2     9

答案 1 :(得分:1)

library(dplyr)
test%>%group_by(fact,id)%>%distinct(id)