gpt4 book ai didi

R 流水线函数

转载 作者:行者123 更新时间:2023-12-03 20:23:33 28 4
gpt4 key购买 nike

有没有办法在 R 中编写流水线函数,其中一个函数的结果立即传递到下一个?我来自 F# 并且非常欣赏这种能力,但还没有找到如何在 R 中做到这一点。它应该很简单,但我找不到方法。在 F# 中,它看起来像这样:

let complexFunction x =
x |> square
|> add 5
|> toString

在这种情况下,输入将被平方,然后添加 5,然后转换为字符串。我希望能够在 R 中做类似的事情,但不知道如何。我一直在寻找如何做这样的事情,但没有遇到任何事情。我想要这个来导入数据,因为我通常必须导入它然后过滤。现在我分多个步骤执行此操作,并且非常希望能够像在 F# 中使用管道那样做一些事情。

最佳答案

这是使用 Reduce 的函数式编程方法.它实际上是来自 ?Reduce 的一个例子

square <- function(x) x^2
add_5 <- function(x) x+5
x <- 1:5
## Iterative function application:
Funcall <- function(f, ...) f(...)

Reduce(Funcall, list(as.character, add_5, square,x), right = TRUE)
## [1] "6" "9" "14" "21" "30"

或者更简单地使用 functional包装和 Compose
这很好,因为它会为您创建函数
library(functional)
do_stuff <- Compose(square,add_5,as.character )
do_stuff(1:5)
## [1] "6" "9" "14" "21" "30"

我注意到我不会惯用地考虑这些方法中的任何一种 R ish(如果那甚至是一个短语)

关于R 流水线函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13354048/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com