我可以生成类似于alist的
alist(x = , y = )这可用于定义/重写函数形式,如
f <- function() {}
formals(f) <- alist(x = , y = )
formals(f)
$x
$y当我只有参数名作为字符向量时,如何生成相同的表单?
首先我试过:
v <- c("x", "y")
vector("alist", length(v))但这会引发一个错误:
向量中的错误(“作者”,长度(V)):向量:不能生成模式‘者’的向量。
其次,我想我可以用paste和parse构造表达式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谢谢你的提示!
发布于 2019-03-14 14:06:09
我们可以使用bquote创建list of symbols,并将其命名为对象'v‘中的元素。
l1 <- setNames(rep(list(bquote()), length(v)), v)
identical(l1, alist(x=, y=))
#[1] TRUEhttps://stackoverflow.com/questions/55164343
复制相似问题