小编AHP*_*AHP的帖子

在R中定义一类新函数

所以我正在改变我在R中构建的一些函数的类,以便添加一个描述属性,因为我想使用S3泛型来为我处理所有事情.基本上,我有一个像这样的结构

foo <- function(x) x + 1

addFunction <- function(f, description) {
    class(f) <- c("addFunction", "function")
    attr(f, "description") <- description
    f
}

foo <- addFunction(foo, "Add one")
Run Code Online (Sandbox Code Playgroud)

然后我做的事情就像

description <- function(x) UseMethod("description")
description.default <- function(x) deparse(substitute(x))
description.addFunction <- function(x) attr(x, "description")
Run Code Online (Sandbox Code Playgroud)

这很好用,但不是那么优雅.我想知道是否可以定义一个新类的函数,以便可以用类似于function语法的语法定义此类的实例.换句话说,是能够限定addFunction,使得foo在下面的方式产生的:

foo <- addFunction(description = "Add one", x) {
    x + 1
}
Run Code Online (Sandbox Code Playgroud)

(或者类似的东西,我对属性应该添加到函数中的位置没有强烈的感觉)?

谢谢阅读!


更新:我已经尝试了更多这个想法,但还没有真正达到任何具体结果 - 所以这只是我对当前(更新)主题的概述:

我尝试了只复制function()-function,给它一个不同的名字,然后再操作它的想法.但是,这不起作用,我想对这里发生的事情有任何意见:

> function2 <- `function`
> identical(`function`, function2)
[1] TRUE
> function(x) …
Run Code Online (Sandbox Code Playgroud)

r r-s3

11
推荐指数
1
解决办法
263
查看次数

标签 统计

r ×1

r-s3 ×1