管道操作符(%>%)是由magrittr包提供的方便操作符,能够让数据在函数之间快速传递,避免中间变量的生成,从而减少内存的占用。同时,管道操作符让代码的逻辑更加清晰,让后期的排错也更加简便。一般而言,管道操作符会让之前生成的结果作为第一个参数传递到后面的函数中,即
f(x)
与
x %>% f()
是等价的。例如:
mean(1:3)
## [1] 2
# 等价于
1:3 %>% mean()
## [1] 2
有时,数据不是作为第一个参数传递到后面的函数,这时候就可以使用“.”作为前面数据的指代来放在后面的函数中,例如:
lm(Sepal.Length~Sepal.Width,data = iris)
##
## Call:
## lm(formula = Sepal.Length ~ Sepal.Width, data = iris)
##
## Coefficients:
## (Intercept) Sepal.Width
## 6.5262 -0.2234
# 等价于
iris %>% lm(Sepal.Length~Sepal.Width,data = .)
##
## Call:
## lm(formula = Sepal.Length ~ Sepal.Width, data = .)
##
## Coefficients:
## (Intercept) Sepal.Width
## 6.5262 -0.2234
本书的代码将广泛地使用管道操作符,以节省代码量并提高工作效率。