我可以像生成一个alist
alist(x = , y = )
这可用于定义/覆盖函数形式,如
f <- function() {}
formals(f) <- alist(x = , y = )
formals(f)
$x
$y
当我仅将参数名称作为字符向量时,如何生成相同的形式化形式?
首先我尝试:
v <- c("x", "y")
vector("alist", length(v))
但这会引发错误:
vector(“ alist”,length(v))中的错误:vector:无法创建矢量 模式“ alist”。
第二,我以为我可以用x = , y =
和paste
来构造表达式parse
,但这会引发另一个错误:
string <- paste0(paste0(v, collapse = " = ,"), " = ")
parse(text = string)
解析错误(text = string)::1:5:意外的','1:x =, ^
第三次,我尝试使用普通列表,但这不会导致相同的结果:
l <- vector("list", length(v))
names(l) <- v
l
$x
NULL
$y
NULL
感谢任何提示!
答案 0 :(得分:2)
我们可以利用bquote
来创建list
的{{1}},并用对象'v'中的元素命名
symbols