如何在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())