为了账号安全,请及时绑定邮箱和手机立即绑定

函数中“…”(三点或点对点)的用法

函数中“…”(三点或点对点)的用法

有只小跳蛙 2019-12-12 10:10:41
在哪里可以找到有关...in函数用法的文档?例子将是有用的。
查看完整描述

3 回答

?
Cats萌萌

TA贡献1805条经验 获得超9个赞

一个让您入门的小例子。


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)。



查看完整回答
反对 回复 2019-12-13
?
智慧大石

TA贡献1946条经验 获得超3个赞

您应该转到“ 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)用来实现相同的结果)



查看完整回答
反对 回复 2019-12-13
  • 3 回答
  • 0 关注
  • 445 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信