在哪里可以找到有关...in函数用法的文档?例子将是有用的。
Answers:
用来形容的单词...是“省略号”。知道这一点将使搜索有关构造的信息更加容易。例如,对Google的第一击是该网站上的另一个问题:编写自己的函数时如何使用R的省略号功能?
dots,例如,帮助页面已命名?dots,页面上甚至都没有提到“省略号”
?dots对我?'...'不起作用,但对我有用。
一个让您入门的小例子。
f <- function(x, ...)
{
dots <- list(...) #1
if(length(dots) == 0) return(NULL)
cat("The arguments in ... are\n")
print(dots)
f(...) #2
}
f(1,2,3,"a", list("monkey"))
函数,f将第一个输入参数以外的所有参数存储在省略号变量中。为了访问其内容,最简单的方法是将其转换为列表(1)。但是,主要用途是将参数传递给子函数,而无需进行转换(2)。
f()每次都使用不同的参数反复调用。运行代码,看看您是否能理解正在发生的事情。
...length(),以及
您应该转到“ R语言定义”的第2.1.9节Dot-dot-dot。它与R安装捆绑在一起。help.start()在交互式会话中运行以启动HTML帮助,然后单击“ R语言定义”链接。您也可以从主站点使用PDF或HTML版本。
无论如何,...用于匹配函数的未指定形式参数。
args(sapply)
function (X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)
NULL
sapply(mtcars, mean, trim = .5)
mpg cyl disp hp drat wt qsec vs am gear
19.200 6.000 196.300 123.000 3.695 3.325 17.710 0.000 0.000 4.000
carb
2.000
如您所见,trim = .5尽管没有将其指定为sapply函数的形式参数,但我还是通过了。
(请注意,此示例很简单,您可以sapply(mtcars, median)用来实现相同的结果)
trim是mean函数的参数。该...中sapply是机制trim要传递给mean。
...是R等同于python的关键字输入(def func(**kwargs))