通过对ID列

时间:2015-06-03 20:02:38

标签: r data.table plyr dplyr

我有一个来自

的数据框
ID <- c("A","A","A","B","B","B","C","C","C") 
Type <- c(45,46,47,45,46,47,45,46,47)
Point_A <- c(10,15,20,8,9,10,35,33,39) 
df <- data.frame(ID,Type,Point_A)

    ID  Type    Point_A 
1   A   45        10    
2   A   46        15    
3   A   47        20    
4   B   45        8    
5   B   46        9    
6   B   47        10    
7   C   45        35    
8   C   46        33    
9   C   47        39    

我想按ID计算Point_A列分组的中位数,然后根据阈值删除行。

例如,假设我的阈值为11 。我想删除按ID分组的行,其中值小于阈值,因此所需的输出将是

    ID  Type    Point_A 
1   A   45        10    
2   A   46        15    
3   A   47        20    
4   C   45        35    
5   C   46        33    
6   C   47        39 

虽然我能够计算中位数,但我不知道如何删除行。

func <- function(x) (median(x,na.rm=TRUE))
df1 <- df %>% 
  group_by(ID) %>% 
  mutate_each(funs(.=func(.)),Point_A) 
  summarise(Point_A = f(Point_A))

请告诉我如何做到这一点。

0 个答案:

没有答案