我可以使用管道吗?在 R 中,不是 %>%

Chu*_*dro 1 r pipe dplyr

可能有人问过这个问题,但我找不到。在 R 中,我想使用 | 管道而不是 %>%。

我已经习惯了 Linux,如果我能用 dplyr 或类似的东西做到这一点,我会很高兴。

是否可以使用此管道运算符?

df | filter(state == "New York")
Run Code Online (Sandbox Code Playgroud)

G. *_*eck 5

使用与 UNIX 中相同的符号可能会产生误导,因为 magrittr 管道不等同于 UNIX 管道,但除了这些管道中的任何一个使用内置 BOD 数据框给出相同的结果。

#2 定义了一个别名%>%

#3 也重新定义了|它破坏的内置物——虽然我们试图通过在使用后将其移除来限制损坏,但不推荐使用。#3a 是#3 的一个更干净的版本,它只定义了 | 在本地,我们也可以在函数的顶部定义它,在这种情况下,它的作用域只会在函数体内,因此它不会对全局造成损害。

#4 仅适用于 R 的开发版本。请参阅?"|>" 注意,它不等同于 magrittr,%>%尽管它适用于 magrittr 管道工作的情况的子集。

#5 是奇怪的管道(谷歌它)。它只需要基本的 R 并且只是以一种巧妙的方式使用普通的 R 语法。

library(dplyr)

# 1
BOD %>% filter(Time > 3)

# 2
`%|%` <- `%>%`
BOD %|% filter(Time > 3)

# 3 - not recommended
`|` <- `%>%`
BOD | filter(Time > 3)
rm(`|`) # remove to limit damage

# 3a - redefine | locally only
with(list(`|` = `%>%`), BOD | filter(Time > 3))

# 4 - needs development version of R
BOD |> filter(Time > 3)

# 5 - bizzaro pipe
BOD ->.; filter(., Time > 3)
Run Code Online (Sandbox Code Playgroud)