r - *apply 中单元函数组合的最短 lambda 表达式

标签 r lambda

我倾向于大量使用 *apply 函数,当我使用组合函数时发现它很麻烦。我见过 pipeRmagrittr。 说我想做(我知道这没有意义)

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/

相关文章:

r - 在函数内访问列表的元素

lambda - Genie 中 vala lambda 的替代品

r - 找到数据框中变量更改其值的位置

r - 在R中查找前一个小时和下一个小时

r - 选择单笔订单最高消费金额

java - 迭代 HashMap 时引用局部变量 -> 从 lambda 表达式引用的局部变量必须是最终的或有效的最终错误

c++ - 如何在 gcc 中为未使用的 lambda 表达式启用警告?

html - 如何在 Shiny 中指向特定的 HTML anchor

Java:如何解析 lambda 参数的泛型类型?

c# - 构建具有多个参数的 GroupBy Lambda 表达式