我希望从字符串创建一个调用对象.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)在我的(地狱)圈子中不受欢迎; 你能建议更好吗?
谢谢.
我只是从#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)
让我们看看是否还有其他更清洁的技巧。
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |