基本上要让这个工作你需要打电话
as.function(alist(x=, y=, z=, {}))`
Run Code Online (Sandbox Code Playgroud)
这相当于
as.function(alist(x=bquote(), y=bquote(), z=bquote(), {}))
Run Code Online (Sandbox Code Playgroud)
第二种形式很好,因为我们有一组命名参数alist,可以使用列表以编程方式提供do.call:
l <- list(x=bquote(), y=bquote(), z=bquote(), bquote({}))
as.function(do.call(alist, l))
# function (x, y, z)
# {
# }
Run Code Online (Sandbox Code Playgroud)
剩下的工作就是构建我们的名单l从变量名,这是可以做到的名单编程setNames和replicate:
vec <- c("x","y","z")
as.function(do.call(alist, c(setNames(replicate(length(vec), bquote(), F), vec),
bquote({}))))
# function (x, y, z)
# {
# }
Run Code Online (Sandbox Code Playgroud)