learn_pipe

函数支持pipeline功能

学习ordering包, 验证含有 pipeline 功能的函数如何写。 感觉是自动支持的。

library(tidyverse)
## ─ Attaching packages ───────────────────────── tidyverse 1.2.1 ─

## ✔ ggplot2 3.1.0     ✔ purrr   0.2.5
## ✔ tibble  1.4.2     ✔ dplyr   0.7.8
## ✔ tidyr   0.8.2     ✔ stringr 1.3.1
## ✔ readr   1.1.1     ✔ forcats 0.3.0

## ─ Conflicts ────────────────────────── tidyverse_conflicts() ─
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(ordering)
x <- 1:5
x %>% is_constant()
## [1] FALSE
#' @rdname tests
#' @export

is_constant <- function( x, na.rm=TRUE ) {
  
  if( all( is.na(x) ) ) return(NA)
  
  if( na.rm )
    x <- na.omit(x)
  
  all( x == x[1] )
  
}
get_nrow <- function(x){
    x %>% 
    summarise(
        n()
    ) %>% 
    pull()
}
get_nrow(mtcars)
## [1] 32
mtcars %>% get_nrow()
## [1] 32

pipeline 函数,很容易自动建立啊