【问题标题】:Define an arbitrary number and variety of arguments定义任意数量和种类的参数
【发布时间】:2015-10-06 02:49:18
【问题描述】:

我有一个问题,我不知道如何解决它。当我定义一个函数并确定它的参数时,我想定义任意数量的一些参数。例如,我想创建一个函数(自定义密度),我想放置许多需要密度的值向量。

传统的方式是这样的

dens_cust<- function( vector , ... other arguments desired ...)

在这种情况下,我的函数将只绘制一个密度,但我想绘制任意数量的向量。

有一些简单的解决方案吗?

【问题讨论】:

标签: r


【解决方案1】:

您可以使用... 参数来执行此操作。例如,如果除了两个参数 arg1arg2 之外,您还想传递任意数量的向量,您可以执行以下操作:

dens_cust <- function(arg1, arg2, ...) {
  vecs <- list(...)
  # "vecs" is a list of the passed vectors; process each however you want
}

作为一个简单的示例,您可以获取并返回 a 乘以每个传递的向量的平均值加上 b,如下所示:

dens_cust <- function(a, b, ...) {
  vecs <- list(...)
  a * sapply(vecs, mean) + b
}
dens_cust(2, 3, 1:3, 4:10)
# [1]  7 17

如果您想将一些绘图函数 plot_dens 应用于每个向量,则可以使用:

dens_cust <- function(...) {
  vecs <- list(...)
  for (v in vecs) {
    plot_dens(v)
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2016-05-13
    相关资源
    最近更新 更多