R类函数输出

R类函数输出,r,function,types,functional-programming,output,R,Function,Types,Functional Programming,Output,在R中获取函数输出类的最佳方法是什么?Formal适用于输入,但不确定是否适用于输出 考虑 f_1 <- function(x) { x } f_2 <- function(x) { list(x, x ^ 2) } 如果neg为false,则f_3仅复制该函数。正如注释中所指出的,由于outputf部分不存在,所以它的其余部分也不存在。如果是这样,那么它将把fx的结果乘以-1,或者使用lapply做同样的事情,这取决于fx输出的类别。看看?类别,例如classf_

在R中获取函数输出类的最佳方法是什么?Formal适用于输入,但不确定是否适用于输出

考虑

f_1 <- function(x) {
    x
}
f_2 <- function(x) {
    list(x, x ^ 2)
}

如果neg为false,则f_3仅复制该函数。正如注释中所指出的,由于outputf部分不存在,所以它的其余部分也不存在。如果是这样,那么它将把fx的结果乘以-1,或者使用lapply做同样的事情,这取决于fx输出的类别。

看看?类别,例如classf_1将返回函数。席知班。这并不能解决我的问题。我想要函数输出的类。不是类函数。所以你可以在函数上调用class,参数是函数classfx。如果我在forcef行后面加上命令class,那么你在调用f_3时没有传递x,所以它不会find它。
f_3 <- function(f, neg=FALSE) {
    if (neg==FALSE) {
        f
    } else {
        force(f)
        if (output(f) == "list") { #output(f) is just something 
            #I made up, doesn't actually work
            function(x) {
                lapply(f(x), function(y) y * -1)
            }
        } else {
            function(x) {
                f(x) * -1
            }
        }
    }
}