首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我将参数名作为字符向量时,如何生成` `alist`‘?

当我将参数名作为字符向量时,如何生成` `alist`‘?
EN

Stack Overflow用户
提问于 2019-03-14 13:55:18
回答 1查看 68关注 0票数 2

我可以生成类似于alist

代码语言:javascript
复制
alist(x = , y = )

这可用于定义/重写函数形式,如

代码语言:javascript
复制
f <- function() {}
formals(f) <- alist(x = , y = )
formals(f)
$x


$y

当我只有参数名作为字符向量时,如何生成相同的表单?

首先我试过:

代码语言:javascript
复制
v <- c("x", "y")
vector("alist", length(v))

但这会引发一个错误:

向量中的错误(“作者”,长度(V)):向量:不能生成模式‘者’的向量。

其次,我想我可以用pasteparse构造表达式parse,但这会引发另一个错误:

代码语言:javascript
复制
string <- paste0(paste0(v, collapse = " = ,"), " = ") 
parse(text = string)

解析中的错误(text= string):: 1: 5:意外',‘1:X=,^

第三,我尝试使用一个正常的列表,但这并不会导致相同的结果:

代码语言:javascript
复制
l <- vector("list", length(v))
names(l) <- v
l
$x
NULL

$y
NULL

谢谢你的提示!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-14 14:06:09

我们可以使用bquote创建list of symbols,并将其命名为对象'v‘中的元素。

代码语言:javascript
复制
l1 <- setNames(rep(list(bquote()), length(v)), v) 
identical(l1, alist(x=, y=))
#[1] TRUE
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55164343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档