美文网首页
R语言写函数时一个三个点的参数是干嘛的?

R语言写函数时一个三个点的参数是干嘛的?

作者: 灵魂工具人 | 来源:发表于2020-12-24 15:00 被阅读0次

我喜欢看开源库的源码,在看一些R包的源码的时候,经常会碰到函数里面有一个名称是三个点(即省略号,专业术语叫ellipsis,姑且翻译为省略参数吧)的参数。例如,limma包的一个函数是这样写的:

avereps.default <- function(x,ID=rownames(x),...)

这个参数的作用是啥呢?我们来试验一下:

f1 <- function (x, y, ...) {
  z <- list(...)
  print(z)
}
f1(1, 2, 3, 4, 5)

会输出:

[[1]]
[1] 3

[[2]]
[1] 4

[[3]]
[1] 5

看到没有,其实就是把1、2后面的参数都放到省略参数的意思。

那这个参数一般怎么用呢?

省略参数的使用场景一般有两个:

  1. 参数不固定长度

例如:

my_sum <- function (...) {
  # 只为了演示如何使用
  # 现实中不能这么写
  total <- 0
  for (i in list(...)) {
    total <- total + i
  }
  return(total)
}
my_sum(1, 2, 3)
my_sum(1, 2, 3, 4)
  1. 兼容其他函数的参数

如果我的函数里面要调用其他函数,如果只是直接往这个函数里面传的话,可以使用省略参数。例如:

my_print <- function (...) {
  print(...)
}

一般第二种使用场景用的比较多。

相关文章

  • R语言写函数时一个三个点的参数是干嘛的?

    我喜欢看开源库的源码,在看一些R包的源码的时候,经常会碰到函数里面有一个名称是三个点(即省略号,专业术语叫elli...

  • R语言_函数认知&R包安装

    主要从以下三方面去学习R语言函数与R包: 1.R语言函数:形式参数实际参数默认参数了解函数的方式2.R包:什么是R...

  • 2021-10-15 diff()、range()函数

    1.diff()函数 diff() 是R语言中的一个简单函数。该函数有三个基本参数:x, lag = 1 和 di...

  • R语言中创建函数参数的问题

    R语言中创建函数参数的问题 R可以很方便的指定任意长度的参数列表(…)可以表示将额外的参数传递给另外的一个函数 -...

  • 第2章 R编程入门(一):数据集

    2.1 R语言 R是一种解释性语言,输入后可直接给出结果。R功能烤函数实现,函数形式如下:函数(输入数据, 参数=...

  • 哈佛R语言课程--3.函数、参数和R包

    学习目标 R语言函数的描述和应用。 使用参数修改R语言函数的默认操作 从R帮助文档获取有关函数的更多信息 创建用户...

  • R基础快速入门(3)

    文集地址 R语言快速入门 R函数 使用关键字function来创建一个R函数,如下 如下方式调用和创建函数(含参数...

  • R语言中的字符串

    R语言提供了丰富的字符串函数,这里介绍几个R语言里面常用的基本字符串处理函数,详细参数可以在R中查看帮助。 nch...

  • R语言作图基础

    本文非原创 par()函数的参数可见:R 绘图参数设置函数par()详解 文字 点、线 点和线是很基础的元素,点的...

  • Part3:函数与R包

    Part3:函数与R包 1.函数与参数 1.形式参数与实际参数 2.写函数的函数 3.默认参数 作者会设计很多参数...

网友评论

      本文标题:R语言写函数时一个三个点的参数是干嘛的?

      本文链接:https://www.haomeiwen.com/subject/dqymnktx.html