首页 > 解决方案 > 高级 R 函数调用

问题描述

总而言之,这听起来可能很愚蠢,但我需要了解一些遗留的 R 代码,而我对此一无所知。我希望有人能给我一些关于下面发生的事情的提示:

g = if (calc.tstat){
function(...) FUN(...)} else 
{function(...) FUN(..1)}

这 3 行是下面调用的函数 (famamacb) 的一部分:

temp <- famamacb(include = include, 
               function(coef) list(tseries.tstat = apply(coef,2, cumtstat, na.rm = T, i = 
match(rownames(coef), rownames(time.weight)))))

我的理解是 FUN(...) 是指生成列表的函数(coef)。如果我错了,有人可以纠正我吗?但是 FUN(..1) 会做什么呢?

提前非常感谢!

标签: rfunction

解决方案


..1指通过省略号参数提供的可变数量的参数中的第一个help("...")元素(有关更多信息,另请参阅)。

这是一个最小的示例,显示了如何..2引用通过 提供的参数中的第二个元素...

f <- function (x, ...) return(c(x, list(..2)))

f("zero", "one", "two")
#[[1]]
#[1] "zero"
#
#[[2]]
#[1] "two"

推荐阅读