我希望从字符串创建一个call对象。在交互(手动输入)模式下,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)现在,eval(parse)在我的(地狱)圈子里是不受欢迎的;你能给我更好的建议吗?
谢谢。
发布于 2012-02-19 08:20:05
我只是在这里从#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)让我们看看是否有其他更干净的技巧。
https://stackoverflow.com/questions/9345373
复制相似问题