R基本用法和链接

示例

管道运算符,%>%用于将参数插入函数。它不是该语言的基本功能,只能在附加提供该语言的软件包后才能使用magrittr。管道运算符采用管道的左侧(LHS),并将其用作函数的右侧的第一个参数(RHS)。例如:

library(magrittr)

1:10 %>% mean
# [1] 5.5

# is equivalent to
mean(1:10)
# [1] 5.5

管道可用于替换一系列函数调用。多个管道允许我们从左到右而不是从内到外读取和写入序列。例如,假设我们已将years其定义为一个因子,但想将其转换为数字。为了防止可能的信息丢失,我们首先转换为字符,然后转换为数字:

years <- factor(2008:2012)

# nesting
as.numeric(as.character(years))

# piping
years %>%as.character%>% as.numeric

如果我们不希望将LHS(左手侧)用作RHS(右手侧)上的第一个参数,则有一些变通方法,例如命名参数或.用于指示管道输入的位置。

# example with grepl
# its syntax:
# grepl(pattern, x,ignore.case= FALSE, perl = FALSE, fixed = FALSE, useBytes = FALSE)

# note that the `substring` result is the *2nd* argument of grepl
grepl("Wo", substring("Hello World", 7, 11))

# piping while naming other arguments
"Hello World" %>% substring(7, 11) %>% grepl(pattern = "Wo")

# piping with .
"Hello World" %>% substring(7, 11) %>% grepl("Wo", .)

# piping with . and curly braces
"Hello World" %>% substring(7, 11) %>% { c(paste('Hi', .)) }
#[1] "Hi World"

#using LHS multiple times in argument with curly braces and .
"Hello World" %>% substring(7, 11) %>% { c(paste(. ,'Hi', .)) }
#[1] "World Hi World"