【问题标题】:Passing variable number of arguments to R function [duplicate]将可变数量的参数传递给R函数[重复]
【发布时间】:2020-10-30 20:06:00
【问题描述】:

我有一个函数可以接收可变(和未知)数量的参数。 最简单的例子是

test <- function(...){
       print(length(list(...)))
}

这个函数是从一个闪亮的应用程序调用的,用户提供用逗号分隔的输入参数。 假设我解析了参数并将它们放在一个向量中

args <- c(1,2,3,4)

如何在不显式调用的情况下将这些参数传递给函数test

test(args[1], args[2], args[3], args[4])

在我的情况下,上述解决方案并不好,因为参数的数量是未知的,我无法对其进行硬编码。

我也无法修改函数 test 以将所有参数作为列表接收(该函数是我不能/不想修改的包的一部分)

【问题讨论】:

    标签: r functional-programming ellipsis


    【解决方案1】:

    我们可以使用do.callargs 是一个向量,do.call 需要一个参数列表,我们可以使用as.listargs 转换为列表。

    do.call(test, as.list(args))
    #[1] 4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-24
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      相关资源
      最近更新 更多