87

在哪里可以找到有关...in 函数用法的文档?例子会很有用。

4

3 回答 3

77

用来形容的词...是“省略号”。了解这一点应该可以更轻松地搜索有关构造的信息。例如,谷歌上的第一个热门是这个网站上的另一个问题:如何在编写自己的函数时使用 R 的省略号功能?

于 2011-05-04T22:33:23.313 回答
56

一个让你开始的小例子。

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将除第一个输入参数之外的所有参数存储在 ellipsis 变量中。要访问其内容,最简单的方法是将其转换为列表 (1)。然而,主要用途是将参数传递给子函数,这不需要转换 (2)。

于 2011-05-05T10:53:58.823 回答
20

您应该转到“R 语言定义”,第2.1.9 节 Dot-dot-dot。它与 R 安装捆绑在一起。help.start()在交互式会话中运行以显示 HTML 帮助,然后单击The R Language Definition链接。您也可以使用主站点的PDFHTML版本。

无论如何,...用于匹配函数的未指定形式参数。

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)来达到同样的结果)

于 2011-05-05T00:04:12.847 回答