如何在R控制台中将Rscript命令行脚本输出为R对象?
我有一个名为如何在R控制台中将Rscript命令行脚本输出为R对象?,r,bash,R,Bash,我有一个名为my.Script的Rscript: #!/usr/bin/env Rscript x <- rnorm(10) x #/usr/bin/env Rscript x为什么不直接使用source?system('command',intern=t)来内部化系统命令的结果,或者capture.output()来捕获控制台中R函数的输出,例如,capture.output(summary(cars))。这两种方法都避免将结果写入文件。我无法使用源代码,因为脚本通过argparse模
my.Script的Rscript
:
#!/usr/bin/env Rscript
x <- rnorm(10)
x
#/usr/bin/env Rscript
x为什么不直接使用source
?system('command',intern=t)
来内部化系统命令的结果,或者capture.output()
来捕获控制台中R函数的输出,例如,capture.output(summary(cars))
。这两种方法都避免将结果写入文件。我无法使用源代码,因为脚本通过argparse
模块获取命令行参数。关键是我得到的是一个R对象,而不是一个R对象的字符串表示capture.output(system('my.script',intern=T))
返回字符串。为什么不直接使用source
?system('command',intern=T)
内部化系统命令的结果,或者capture.output()
在控制台中捕获R函数的输出,例如,capture.output()(summary(cars))
。这两种方法都避免将结果写入文件。我无法使用源代码,因为脚本通过argparse
模块获取命令行参数。关键是我返回了一个R对象,而不是R对象的字符串表示形式。capture.output(system('my.script',intern=T))
返回一个字符串。
> x <- system('my.Rscript')
x <- readRDS(file=pipe(description = 'my.Rscript'))
#!/usr/bin/env Rscript
x <- rnorm(10)
saveRDS(x=x, file = stdout())