学习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 函数,很容易自动建立啊