ryusukekenji >names(sourcedata) <- "Date" "A" "B" "k1" "k2"<br /> >smp <- sourcedata[!duplicated(data.frame(sourcedata$A,sourcedata$B)),]</p> >names(sourcedata) <- "Date" "A" "B" "k1" "k2"<br /> >smp <- subset[sourcedata,!duplicated(sourcedata$A,sourcedata$B),]</p> 试了以上两个写法都行不通,我想要去除掉数据中重复的A和B,结果还是一样出现重复数据,请问该怎么删除掉双重条件的重复元素呢?
ypchen 回复 第4楼 的 ryusukekenji: 你的意思是 如果A字段和B字段都重复的话 就要去重? 但是 如果A字段和B字段都重复的话 你保留那一行数据呢 你显然没有搞明白duplicated的用法
ryusukekenji 回复 第5楼 的 ypchen: 参考了这个网址,http://tolstoy.newcastle.edu.au/R/e8/help/09/12/8736.html,觉得有点不对劲。 是啊,头痛啊。duplicated好像只能过滤掉单列条件,真的不太明白该怎么用duplicated。版主可以大略讲解吗? >smp <- na.omit(sourcedata[which(data.frame(sourcedata$A,sourcedata$B) != duplicated(data.frame(sourcedata$A,sourcedata$B))),])</p> 试一下使用which也一样,问题出在不明白duplicated怎么用。版主可以赐教吗?
lkifish 若source中1、2列数据完全相同 则删除此行,代码实现: index1<-duplicated(source[,1]) index2=duplicated(source[,2]) index=index1 & index2 source2=source[!index,]
chaoyuan_101 lkifish 这个方法不行啊,我试了一下。当两列数据有a,b和b,a时,做索引,两个都是false,怎么能去重呢?如果是如下的这种例子怎么弄呢? first last 1 q e 2 a b 3 o e 4 b a 5 c h 6 x x
Liechi zhouwei 查看 fromLast。 a <- c(1, 2, 2, 4, 4) b <- c("a", "b", "c", "d", "e") df <- data.frame(a = a, b = b) df[duplicated(df$a, fromLast = F), ] df[duplicated(df$a, fromLast = T), ]