小编use*_*er4的帖子

如何在R中实现F#的前向管道运算符?

如何在R中实现F#的前向管道运算符?操作员可以轻松地链接一系列计算.例如,当你有一个输入data,想调用函数foobar顺序,你可以这样写:

data |> foo |> bar
Run Code Online (Sandbox Code Playgroud)

而不是写作bar(foo(data)).好处是您可以避免使用某些括号,并且计算的执行顺序与执行顺序相同(从左到右).在F#中,运算符定义如下:

let (|>) a f = f a
Run Code Online (Sandbox Code Playgroud)

看起来%...%可以用于二元运算符,但是它如何工作?

f# r

16
推荐指数
3
解决办法
1200
查看次数

如何在现有环境中添加功能

是否可以env()用作名称空间的替代品,如何在向其添加函数之前检查环境是否存在?

这与这个问题有关,而Brendan的建议 如何组织大型R程序? 我理解Dirk在这个问题上的观点,但是对于开发而言,将函数放入包中有时是不切实际的.

编辑:这个想法是跨文件模仿名称空间,因此能够独立加载不同的文件.如果先前已加载文件,则不需要创建环境,只需添加到.

谢谢你的想法

编辑:所以下面的代码可能相当于其他语言的命名空间: -

 # how to use environment as namespaces

# file 1

# equivalent of 'namespace e' if (!(exists("e") && is.environment(e))) {   e <- new.env(parent=baseenv()) }

e$f1 <- function(x) {1}


# file 2
# equivalent of 'namespace e' if (!(exists("e") && is.environment(e))) {   e <- new.env(parent=baseenv()) }

e$f2 <- function(x) {2}
Run Code Online (Sandbox Code Playgroud)

r

6
推荐指数
2
解决办法
3901
查看次数

标签 统计

r ×2

f# ×1