我倾向于大量使用 *apply
函数,当我使用组合函数时发现它很麻烦。我见过 pipeR
和 magrittr
。
说我想做(我知道这没有意义)
lapply(-3:10, FUN=function(x){return(sum(abs(x)))})
我可以定义 FUN=function(x){return(sum(abs(x)))}
的最短方法是什么,目前看来 {. %>% abs %>% sum}
是我找到的最短的。
有没有办法做 { sum(abs(.)) }
或类似的事情?
最佳答案
这是某种代码高尔夫挑战吗?
library(functional)
lapply(-3:10, Compose(abs, sum))
当然,定义一个运算符很简单:
`%.%` <- function(x, y) Compose(y, x)
lapply(-3:10, sum %.% abs)
事实上,哈德利的 pryr包定义了这个运算符。
关于r - *apply 中单元函数组合的最短 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39079336/