我有一個問題,它是another question的擴展。R使用匿名函數進行流水線操作
我希望能夠管道匿名函數。在前面的問題的答案,管道定義的功能是建立一個管道運營商「%|>%」,並確定它是這樣的:
"%|>%" <- function(fun1, fun2){
function(x){fun2(fun1(x))}
}
這將允許你打電話了一系列的功能,同時不斷地傳遞前一個功能的結果到下一個。需要注意的是要預定義的功能。現在我試圖找出如何用匿名函數來做到這一點。它使用預定義功能以前的解決方案是這樣的:
square <- function(x){x^2}
add5 <- function(x){x + 5}
pipelineTest <-
square %|>%
add5
,讓你這個behviour:
> 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)
的結果相同。我知道這是一個微不足道的例子。我真正想要的是一種管理匿名函數的方法。謝謝您的幫助!
最後一個問題是一個有趣的練習,但實際上這不是'R方式'來做事情。在上一個問題中,您是否有理由不想按照[Seth建議](http://stackoverflow.com/a/13354145/1003565)的方式進行操作? – Dason