将可变数量的参数传递给 R 函数
Passing variable number of arguments to R function
我有一个函数可以接收可变(和未知)数量的参数。
最简单的例子是
test <- function(...){
print(length(list(...)))
}
此函数是从 Shiny 应用程序调用的,用户在其中提供以逗号分隔的输入参数。
假设我解析了参数并将它们放在向量中
args <- c(1,2,3,4)
如何在不显式调用
的情况下将这些参数传递给函数test
test(args[1], args[2], args[3], args[4])
在我的例子中,上面的解决方案并不好,因为参数的数量是未知的,我不能硬编码。
我也不能修改函数 test
以将所有参数作为列表接收(该函数是我不能t/don不想修改的包的一部分)
我们可以使用do.call
。 args
是一个向量,do.call
需要一个参数列表,我们可以使用 as.list
.
将 args
转换为列表
do.call(test, as.list(args))
#[1] 4
我有一个函数可以接收可变(和未知)数量的参数。 最简单的例子是
test <- function(...){
print(length(list(...)))
}
此函数是从 Shiny 应用程序调用的,用户在其中提供以逗号分隔的输入参数。 假设我解析了参数并将它们放在向量中
args <- c(1,2,3,4)
如何在不显式调用
的情况下将这些参数传递给函数test
test(args[1], args[2], args[3], args[4])
在我的例子中,上面的解决方案并不好,因为参数的数量是未知的,我不能硬编码。
我也不能修改函数 test
以将所有参数作为列表接收(该函数是我不能t/don不想修改的包的一部分)
我们可以使用do.call
。 args
是一个向量,do.call
需要一个参数列表,我们可以使用 as.list
.
args
转换为列表
do.call(test, as.list(args))
#[1] 4