将多个条件的dplyr :: filter与R中的管道运算符结合使用

时间:2015-09-23 21:48:16

标签: r dplyr magrittr

如何将具有多个条件的过滤器与R中的管道%>%运算符结合使用?对于Eg:

x <- rep(c(2011:2012),4)
y <- sort(rep(c(1:4),2))
qtr <- as.data.frame(cbind(x,y))
names(qtr) <- c("year","qtr")

现在,我需要过滤2012年第3季度的记录,我需要在下面的步骤中使用管道运算符。

z <- dplyr::filter(qtr,qtr$year==2012 & qtr$qtr==3)

1 个答案:

答案 0 :(得分:4)

使用您的示例

x <- rep(c(2011:2012),4)
y <- sort(rep(c(1:4),2))
qtr <- as.data.frame(cbind(x,y))
names(qtr) <- c("year","qtr")

你可以这样做:

dplyr::filter(qtr,year==2012 & qtr==3)
#>   year qtr
#> 1 2012   3
dplyr::filter(qtr, year==2012, qtr==3)
#>   year qtr
#> 1 2012   3

管道:

qtr %>% 
  filter(year == 2012, qtr == 3)
#>   year qtr
#> 1 2012   3

或逐步

qtr %>% 
  filter(year == 2012) %>% 
  filter(qtr == 3)
#>   year qtr
#> 1 2012   3