繁体   English   中英

如何在非交互式调用中获取 getParseData 的结果?

[英]How can I obtain the result of getParseData in a non-interactive call?

我有一个包含这个的小 R 脚本:

code <- 'write.table(x=iris, file="iris.txt", sep="_")'
sink(file("all.Rout", open = "wt"))
parse(text=code)
str( getParseData(parse(text=code))   )
sink()

在 Windows (R 3.6.1) 上,我打开cmd ,输入R ,然后输入source(script.R)
结果all.Rout包含我需要的 data.frame 的 str 。 解析结果未显示,但我不需要它。 都好。

cmd ,我输入Rscript script.Rall.Rout包含expression(write.table[...]) ,但 getParseData 的结果为NULL 我需要后者在测验设置中进行语法检查。

看到这篇文章( `parse` 在交互和非交互模式下的行为不同),解决方案很简单:

getParseData(parse(text=code, keep.source=TRUE)) 

显然, getOption("keep.source")在非交互式会话中为 FALSE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM