我有一个问题是另一个问题的延伸。
我希望能够管道匿名函数。在上一个问题中,管道定义函数的答案是创建一个管道运算符 "%|>%" 并以这种方式定义它:
"%|>%" <- function(fun1, fun2){
function(x){fun2(fun1(x))}
}
这将允许您调用一系列函数,同时不断地将前一个函数的结果传递给下一个函数。需要注意的是要预定义的功能。现在我试图弄清楚如何使用匿名函数来做到这一点。之前使用预定义函数的解决方案如下所示:
square <- function(x){x^2}
add5 <- function(x){x + 5}
pipelineTest <-
square %|>%
add5
这给了你这种行为:
> pipelineTest(1:10)
[1] 6 9 14 21 30 41 54 69 86 105
我希望能够pipelineTest
用这样的匿名函数定义函数:
anonymousPipelineTest <-
function(x){x^2} %|>%
function(x){x+5} %|>%
x
当我尝试使用与上述相同的参数调用它时,我得到以下信息:
> anonymousPipelineTest(1:10)
function(x){fun2(fun1(x))}
<environment: 0x000000000ba1c468>
我希望得到的结果与pipelineTest(1:10)
. 我知道这是一个微不足道的例子。我真正想要的是一种管道匿名函数的方法。谢谢您的帮助!