将参数名称用作字符向量时,如何生成“ alist”?

时间:2019-03-14 13:55:18

标签: r

我可以像生成一个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

感谢任何提示!

1 个答案:

答案 0 :(得分:2)

我们可以利用bquote来创建list的{​​{1}},并用对象'v'中的元素命名

symbols