[英]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.R
, all.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.