删除行
问题描述:
我有以下示例:删除行
Id = c(1, 1,2,2,2,1,4,3,3,3)
long = c("60.466681", "60.664116", "60.766690", "60.86879", "60.986569","60.466681", "60.664116", "60.766690", "60.86879", "60.986569" )
data = data.frame(Id, long)
我想其中Id
的因子的水平发生,除去线data.frame中只有一次。例如,在这里,我会删除id = 4的行并保留其他行。
我与 data$duplicated <- duplicated(data$Id)
然后 subset(data, data$duplicated=="FALSE"
使用但在发生了所述第一 每个时间因素这也移除第一线(即,具有Id=1
或Id=2
第一行)
Id long duplicated
1 1 60.466681 FALSE
2 1 60.664116 TRUE
3 2 60.766690 FALSE
4 2 60.86879 TRUE
5 2 60.986569 TRUE
6 1 60.466681 TRUE
有没有简单的方法来做到这一点?
谢谢!
答
library(plyr)
data2<-ddply(data,.(Id),function(x){
if(nrow(x)==1){
return(NULL)
}
else{
return(x)
}
})
> data2
Id long
1 1 60.466681
2 1 60.664116
3 1 60.466681
4 2 60.766690
5 2 60.86879
6 2 60.986569
7 3 60.766690
8 3 60.86879
9 3 60.986569
尝试'gdata :: duplicated2' –