LDT*_*LDT 5 r dataframe dplyr tidyverse
我有一个看起来像这样的 data.frame。
dat1=data.frame(time=c(1,2,1,2,1,2,1,2), team=c("A","A","A","A","B","B","C","C"), name=c("LT","LT","CH","CH","CH","CH","AT","AT"))
time team name
 1    A     LT
 2    A     LT
 1    A     CH
 2    A     CH
 1    B     CH
 2    B     CH
 1    C     AT
 2    C     AT
我想对 dplyr 说,请 group_by "team" 并过滤包含名称 "LT" 的每个团队的行。如果团队不包含名称“LT”,则过滤名称“CH”。
我希望我的 data.frame 看起来像这样。
time team name
 1    A     LT
 2    A     LT
 1    B     CH
 2    B     CH
任何帮助都受到高度赞赏
一种dplyr选择可能是:
dat1 %>%
 group_by(team) %>%
 filter(if(any(name == "LT")) name == "LT" else name == "CH")
   time team  name 
  <dbl> <fct> <fct>
1     1 A     LT   
2     2 A     LT   
3     1 B     CH   
4     2 B     CH