R 按ID列分组,根据阈值筛选行

R 按ID列分组,根据阈值筛选行,r,data.table,plyr,dplyr,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

我有一个数据帧,我从

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    
虽然我能够计算中间值,但我不知道如何删除行

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))
func%
每个点(funs(.=func(.),点A)的变异
总结(点A=f(点A))

请让我知道如何着手做这件事

这些问题已经被问了很多次了。。请在data.table和/或dplyr标记下搜索..正如Arun所提到的,您可以在
子集
过滤器
中的问题中找到这一点。如果未成功,请尝试
df%>%group\u by(ID)%>%filter(中值(Point\u A,na.rm=TRUE)>11)
数据。table
setDT(df)[如果(中值(点A,na.rm=TRUE)>11.SD,ID]
谢谢@akrun。我也在一个更大的数据集上工作。阿伦,我很抱歉问了一些愚蠢的问题。在询问之前,我会仔细查看标签。
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))