我可以在R中使用管道,而不是%>%
可能有人问过,但我找不到。在R中,我想使用|管道而不是%>% 我已经习惯了Linux,如果我能用dplyr或类似的东西做到这一点,我会很高兴 可以使用这个管道操作员吗我可以在R中使用管道,而不是%>%,r,dplyr,pipe,R,Dplyr,Pipe,可能有人问过,但我找不到。在R中,我想使用|管道而不是%>% 我已经习惯了Linux,如果我能用dplyr或类似的东西做到这一点,我会很高兴 可以使用这个管道操作员吗 df | filter(state == "New York") 使用与UNIX中相同的符号可能会产生误导,因为magrittr管道并不等同于UNIX管道,但除此之外,使用内置的BOD数据帧会得到相同的结果 2为%>%定义别名 3也重新定义了内置的|它会撞击-不推荐,尽管我们试图通过在使用后移除它来限制损坏。
df | filter(state == "New York")
使用与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)
使用与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)
仅供参考,本机将有一个管道-|>供参考,本机将有一个管道-|>在这种情况下,您将做什么?|在R中具有特定含义,作为OR逻辑运算符。如果愿意,您可以将其重新定义为管道,但这样做是不可取的。相反,接受不同的语言意味着不同的语法。同意菲尔的观点-重载是个坏主意。如果你真的嫁给了垂直坏蛋,你可以定义一个中缀运算符%|%。事实上,我相信至少有一个magrittr替代方案已经存在,因此代码的可读性和可比性会受到影响,因此,在我看来,您应该使用%>%=shift+ctrl+m。您需要知道%>%在Linux中不像管道一样,每个组件都是一个单独的进程,同时运行。使用不同的语法很有用,因为它的行为不同。在这种情况下,您将为或做什么?|在R中有特定的含义,作为OR逻辑运算符。如果愿意,您可以将其重新定义为管道,但这样做是不可取的。相反,接受不同的语言意味着不同的语法。同意菲尔的观点-重载是个坏主意。如果你真的嫁给了垂直坏蛋,你可以定义一个中缀运算符%|%。事实上,我相信至少有一个magrittr替代方案已经存在,因此代码的可读性和可比性会受到影响,因此,在我看来,您应该使用%>%=shift+ctrl+m。您需要知道%>%在Linux中不像管道一样,每个组件都是一个单独的进程,同时运行。使用不同的语法很有用,因为它的行为不同。