我有一个名为 foo() .论据如下 ... 。
foo()
...
但我想在 。。。 。例如,如果用户输入 col = c(2,3) ,我想要第一轮 lapply() 使用 col = 2 第二轮 lapply() 使用 col = 3 等等
。。。
col = c(2,3)
lapply()
col = 2
col = 3
这在R中可能吗?
可复制R代码:
foo <- function(...){ x <- list(...) n_plots <- lengths(x)[1] par(mfrow = n2mfrow(n_plots)) lapply(1:n_plots, \(i) plot(1:10, ...)) } # EXAMPLE OF USE: foo(col = 2:3, pch = c(19,21))
这有点复杂(使用 ... 两次),但似乎对任意数量的参数起到了作用:
foo <- function(...){ L <- list(...) n_plots <- lengths(L)[1] par(mfrow = n2mfrow(n_plots)) ff <- function(...) { args <- c(list(x = 1:10), list(...)) do.call(plot, args) } Map(ff, ...) }
foo(col = 2:3, pch = c(19,21), cex = 2:3)