提问人:Simon Harmel 提问时间:10/9/2023 最后编辑:jpsmithSimon Harmel 更新时间:10/9/2023 访问量:38
如何在 R 函数中循环 '. . .'
How to loop over `. . .` in an R function
问:
我有一个名为 .参数是 .foo()
...
但是我想遍历 中的各个参数。例如,如果用户输入,我希望第一轮使用,第二轮使用,依此类推。...
col = c(2,3)
lapply()
col = 2
lapply()
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))
答:
2赞
Ben Bolker
10/9/2023
#1
这有点复杂(使用两次),但对于任意数量的参数,似乎可以解决问题:...
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)
上一个:在 R 中提取矩阵的非对角线元素
下一个:从向量中提取字符元素
评论