as.alist.character?

bap*_*ste 9 r

我希望从字符串创建一个调用对象.alist(),在交互式(手动输入)模式下或多或少地做了我想要的东西,似乎没有强制方法,也没有as.call做我希望的.

考虑以下代码,

string = "<<mychunk, cache=TRUE, fig.show=hold, dev=png, echo=c(1,3)>>="
sanitized = gsub("<<|>>=", "", string)
## as.call(sanitized)
## as.alist(sanitized)

as.alist.character <- function(x)
   eval(parse(text = paste("alist(", x, ")")))

as.alist.character(sanitized)
Run Code Online (Sandbox Code Playgroud)

现在,eval(parse)在我的(地狱)圈子中不受欢迎; 你能建议更好吗?

谢谢.

Yih*_*Xie 2

我只是从#142复制我自己的肮脏解决方案,它与你的解决方案几乎相同(并且有关于“地狱圈子”的相同问题):

x = 'label,a=1,b=asdf,c="qwer",d=FALSE,e=c(1,2,3)'
z = formals(eval(parse(text = sprintf('function(%s){}', x))))
str(z)
Run Code Online (Sandbox Code Playgroud)

让我们看看是否还有其他更清洁的技巧。