2014-12-04 29 views
0

我有一个包含三个变量的数据,并且我希望保留具有高“值”的id行,并为每个id删除具有低“值”的行。为每个ID删除低值行

我有什么

mydata <- data.frame(id=c(1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,4), case=c("a","b","c","c","b","a","b","c","c","a","b","c","c","a","b","c","a","b"), value=c(1,1,1,2,2,1,1,2,2,2,2,1,1,1,1,1,2,2)) 

我需要什么

id case value 
4 1 c 2 
5 1 b 2 
8 2 c 2 
9 2 c 2 
10 3 a 2 
11 3 b 2 
17 4 a 2 
18 4 b 2 

谢谢!

回答

2

尝试:

mydata[mydata$value==ave(mydata$value,mydata$id,FUN=max),] 
0
mydata[mydata$value>1,] 

mydata[mydata$value>min(mydata$value),] 
+0

这是行不通的,因为可能有些IDS有1单值和2号的,在这种情况下,我需要保留它们。另外,在我的数据中,数字不同于1和2 ... – user9292 2014-12-04 22:11:15