Description Usage Arguments Details Value Examples
Create a Pipe object that stores a value and allows command chaining with $
.
1 |
value |
value to pipe (default is |
Pipe()
function creates a Pipe object that provides object-like command
chaining mechanism, which avoids using external operator and can be cleaner than
operator-based pipline.
Pipe()
creates a Pipe object that allows using $
to perform
first-argument piping, call .()
to evaluate an expression with .
or symbol defined by lambda expression, for side effect, or simply extract an
element from the stored value. $value
or []
ends a pipeline and
extracts its final value.
The functionality of Pipe object fully covers that of the pipe operator %>>%
and provides more features. For example, Pipe object supports directly subsetting
$value
by [...]
, extracting element by [[...]]
, and assigning value
by $item <-
, [...] <-
, and [[...]] <-
.
A typical usage of Pipe object is to start with Pipe()
and end with
$value
or []
.
print()
and str()
are implemented for Pipe
object.
Use header = FALSE
to suppress Pipe header message in printed results.
Use options(Pipe.header = FASLE)
to suppress it globally.
If the Pipe object is used in more than one pipelines, a recommended usage is to name the
object specially so that it is easy to distinguish the Pipe object from the value it
stores. For example, it can start with p
.
Pipe object
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | ## Not run:
# Pipe as first-argument using $
Pipe(rnorm(100))$mean()
Pipe(rnorm(100))$plot(col="red")
# Extract the value from the Pipe object using []
Pipe(rnorm(100))$c(4,5) []
# Pipe to an exrepssion with . or symbol defined in
# lambda expression to represent the object
Pipe(rnorm(100))$.(1 + .) []
Pipe(rnorm(100))$.(x ~ 1 + x) []
# Pipe for side effect
Pipe(rnorm(100))$
.(~ cat("number:",length(.),"\n"))$
summary()
Pipe(rnorm(100))$
.(~ x ~ cat("number:",length(x),"\n"))$
summary()
# Assignment
Pipe(rnorm(100))$
.(~ x)$
mean()
Pipe(rnorm(100))$
.(~ x <- length(.))$
mean()
Pipe(rnorm(100))%
.(x <- c(min(.),max(.)))$
mean()
# Extract element with \code{.(name)}
Pipe(mtcars)$lm(formula = mpg ~ cyl + wt)$.(coefficients)
# Command chaining
Pipe(rnorm(100,mean=10))$
log()$
diff()$
plot(col="red")
Pipe(rnorm(100))$
density(kernel = "rect")$
plot(col = "blue")
# Store an continue piping
pipe1 <- Pipe(rnorm(100,mean=10))$log()$diff()
pipe1$plot(col="red")
# Subsetting, extracting, and assigning
p <- Pipe(list(a=1,b=2))
p["a"]
p[["a"]]
p$a <- 2
p["b"] <- NULL
p[["a"]] <- 3
p[length(.)] # . = p$value
# Data manipulation with dplyr
library(dplyr)
Pipe(mtcars)$
select(mpg,cyl,disp,hp)$
filter(mpg <= median(mpg))$
mutate(rmpg = mpg / max(mpg))$
group_by(cyl)$
do(data.frame(mean=mean(.$rmpg),median=median(.$rmpg))) []
# Graphics with ggvis
library(ggvis)
Pipe(mtcars)$
ggvis(~ mpg, ~ wt)$
layer_points()
# Data manipulation with rlist
library(rlist)
Pipe(list(1,2,3))$
list.map(. + 1)$
list.filter(. <= 5)$
list.sort(.) []
# Lazy evaluation
p1 <- Pipe(mtcars)$
ggvis(~ mpg, ~ wt)
p1$layer_points()
p1$layer_bars()
# Stored Pipe
f1 <- Pipe(rnorm(100))$plot
f1(col="red")
f1(col="green")
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.