r - 如何在 R 中像在 C# 中一样使用 linq 进行函数链接,我们有方法链接?

标签 r

我是 R 的新手,我在 R 中注意到一件事,即每次需要进一步处理之前,我们都需要继续将结果保存到变量中。有什么方法可以将结果存储到某个缓冲区,然后在进一步处理中使用该缓冲区结果。 对于熟悉使用 LINQ 的 C# 的人来说,我们有一个称为“方法链接”的功能,这里我们继续将中间结果动态传递给各种函数,而不需要将它们存储到单独的变量中,最后,我们得到所需的输出.这节省了很多额外的语法,那么R中有类似的东西吗?

最佳答案

函数组合对于函数式编程就像方法链对于面向对象编程一样。

x <- foo(bar(baz(y)))

基本相同

x = baz(y).bar().foo()

使用您可能熟悉的语言。

如果您对嵌套括号和向后编写内容感到不舒服,magrittr 包提供了 %>% 运算符来解包表达式:

library(magrittr)
x = y %>% baz() %>% bar() %>% foo()

R 还为传统的 OO 编程提供了几个框架:引用类和 R6。有了这些,你可以写一些像

x = y$baz()$bar()$foo()

但我建议首先学习如何处理“正常”R 表达式。

关于r - 如何在 R 中像在 C# 中一样使用 linq 进行函数链接,我们有方法链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45121444/

相关文章:

r - 在 R 中打印没有行号的列表

r - ggplot2 堆叠条形图未按手动定义的因子顺序排序

python - Pandas 相当于 dplyr dot

r - 是否可以为 R 定义跨平台工作目录?

r - 如何在API数据请求中正确使用请求 header ?

r - 使用 OpenMP 编译 CRAN 二进制文件需要哪些 Hook ? (在 OS X 上)

r - 使用 RPostgreSQL 从 R 中的数据框创建临时表

c++ - R 和 C++ 迭代

r - 我可以通过网络访问R吗?

r - 在 R dplyr 中将多种格式的大小分组为小、中、大