#magrittr包简单学习
#是把r简化的工作流
rm(list = ls())
vignette("magrittr")
library(magrittr)
# 默认情况下,左边(LHS)将作为出现在右边(RHS)的函数的第一个参数输入。
# 这是子集和转换表达式中的情况。
# %>%可以以嵌套方式使用,例如,它可以出现在参数中的表达式中。
# 当需要在第一个位置以外的位置使用LHS时,可以使用圆点。
# ”,作为占位符。
# 这在聚合表达式中使用。
# 例如,公式中的点不与占位符混淆,占位符用于聚合表达式。
# 只要只需要一个参数LHS,就可以省略空括号。
# 这在print调用中使用(它也返回它的参数)。这里,LHS %>% print(),甚至LHS %>% print(.)也可以。
# 带有点(.)作为LHS的管道将创建一元函数。
# 这用于定义聚合器函数。
car_data <-
mtcars %>%
subset(hp > 100) %>%
aggregate(. ~ cyl, data = ., FUN = . %>% mean %>% round(2)) %>%
transform(kpl = mpg %>% multiply_by(0.4251)) %>%
# 最后,可以使用复合赋值管道操作符%<>%作为链中的第一个管道。
# 其效果是将管道的结果分配给左侧对象,而不是像往常那样返回结果。
# 它本质上是表达式foo <- foo %>% bar %>% baz的简写形式,这可以归结为foo %<>% bar %>% baz。
iris$Sepal.Length %<>% sqrt