管道符函数(%>%),R语言进阶必备

像管道一样传递参数
R语言
数据清理
tidyverse
作者

Shalom

发布日期

2022年9月11日

用法

%>% 又叫管道符函数,该函数能将%>% 左侧运行的结果传递给%>%右侧的函数,默认作为右侧函数的第一个参数的实际值。如果想传递给右侧函数的指定参数,则把右侧函数的待传递的参数的实际值写为”.”即可,“.”就指代了%>% 左侧运行的结果。

library(tidyverse)
mean(1:10)
[1] 5.5
1:10 %>% mean()
[1] 5.5
mean(c(1:10,NA))
[1] NA
mean(c(1:10,NA),na.rm=TRUE)
[1] 5.5
TRUE %>% mean(c(1:10,NA),na.rm=.) %>% c(1) %>% c(.,2) %>% c(3,.)
[1] 3.0 5.5 1.0 2.0

运算符 vs 函数

其实%>%既是运算符也是函数,运算符方便我们输入。

`%>%`(1,c(2))
[1] 1 2
`+`(1,2)
[1] 3
`-`(1,2)
[1] -1
`*`(1,2)
[1] 2
`/`(1,2)
[1] 0.5
`^`(2,2)
[1] 4
`$`(head(mtcars),'mpg')
[1] 21.0 21.0 22.8 21.4 18.7 18.1
`$`(head(mtcars),mpg)
[1] 21.0 21.0 22.8 21.4 18.7 18.1

完整代码

library(tidyverse)
mean(1:10)
1:10 %>% mean()
mean(c(1:10,NA))
mean(c(1:10,NA),na.rm=TRUE)
TRUE %>% mean(c(1:10,NA),na.rm=.) %>% c(1) %>% c(.,2) %>% c(3,.)

`%>%`(1,c(2))
`+`(1,2)
`-`(1,2)
`*`(1,2)
`/`(1,2)
`^`(2,2)
`$`(head(mtcars),'mpg')
`$`(head(mtcars),mpg)