R类函数输出
在R中获取函数输出类的最佳方法是什么?Formal适用于输入,但不确定是否适用于输出 考虑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_
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
}
}
}
}