在R中使用dyplr根据多个条件过滤df

时间:2019-03-08 09:42:42

标签: r filter dplyr

我的df结构如下:

  a.  b. 
  L.  1
  L.  2
  M.  3
  M.  2

“ a”和“ b”是列名。

我想使用dplyr过滤数据帧。条件为:if (a == L & b > 1) 同时 if (a == M & b > 2)

结果将是:

  a.  b. 
  L.  2
  M.  3

我该怎么办? 预先谢谢你!

1 个答案:

答案 0 :(得分:0)

>tibble(a=c('L','L','M','M'),b=c(1:3,2)) %>%
+   dplyr::filter((a == 'L' & b > 1) | (a == 'M' & b > 2))

# A tibble: 2 x 2
#  a         b
#  <chr> <dbl>
#1 L         2
#2 M         3