为什么(...)在R中有用?

时间:2015-02-08 18:22:54

标签: r

我正在尝试理解...中的(...)和/或R。据我所知,这用于向函数输入未知或多个参数,但何时这是必要的和/或有用的?我搜索了rdocumentation,但没有找到。在R Language Definition中,它是以非常抽象的术语定义的。

因此我问:为什么...有用?它只是不是草率的编码?明确传递参数不是更好吗?

2 个答案:

答案 0 :(得分:2)

它被称为varargsvariadic arguments的缩写)。

  

什么时候需要?

这不是绝对必要的,而且它本身并不是草率的。 任何语言中对varargs的“非草率”替代方法是将数组或列表作为单个变量传递。所以varargs只是一堆东西上的语法糖。

  

[什么时候]有用?

任何时候你想保存一些键击并在调用函数时隐式构造一个列表。

  

明确传递参数不是更好吗?

取决于。你的标准是什么?

答案 1 :(得分:1)

省略号使您可以定义具有未知数量的参数/参数的函数。

必须使用clist等函数,其中用户提供的参数数量未知。

如果您在R控制台中输入clist,您会发现这两个函数都使用...作为参数。

在这两种情况下,很难明确传递参数,因为用户可以根据需要传递任意数量的参数。

您可以查看this post了解更多示例