R > 4.1 语法 : Error: function 'function' not supported in RHS call of a pipe

标签 r syntax

R 4.1.0 famously introduced |> (“基本管道”)运算符和类似 Haskell 的 lambda 函数语法。
我认为可以像这样将两者结合起来:

c(1,2,3) |> \(x) 2*x
这对我来说失败了:

Error: function 'function' not supported in RHS call of a pipe


我因此假设这不是有效的语法?这有效:
c(1,2,3) |> (\(x) 2*x)()
有没有更优雅的方式来链接管道和新的 lambda 函数?

最佳答案

这就是原生管道的局限性。您只需在函数名称后包含 (),这与 magrittr 不同。

# native pipe
foo |> bar()
# magrittr pipe
foo %>% bar
也就是说,\(x) 2*x相当于旧的匿名函数语法 function (x) 2*x ,但类似于命名函数,
在原生管道的 RHS 上使用时,必须包含 ()。

关于R > 4.1 语法 : Error: function 'function' not supported in RHS call of a pipe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67605863/

相关文章:

c - (char *)0 在c中是什么意思?

c - 了解 'for' 循环的退出条件

r - 如何删除 ggsurvplot 图例中的自动 "strata"-text?

RStudio blogdown 在使用 new_site() 后生成错误

r - 如何使用ggplot2绘制表格

php - 用于传递 PHP 变量的 Javascript 语法

c - 指针语法混淆(*ptr vs ptr)

r - 如何使用 stargazer 以科学记数法显示系数

r - 将数据框转换为列表,具有应用系列的功能

python - 具有默认值的参数和关键字参数之间有什么区别?