收集系统rscript命令的输出作为r对象

时间:2017-11-17 10:04:05

标签: r

我在Windows中使用RStudio来开发和运行涉及大数据集(90乘~60000矩阵)的多变量分析的管道。对于这样大小的矩阵,我经常得到“防止堆栈溢出”。避免这个问题的一种方法,虽然仍然使用RStudio与常规Rgui相反,但是使用以下语法运行我的脚本

system("Rscript --max-ppsize=500000, my_script.s").

但是,运行此命令会导致脚本成功运行,但我无法获得所需的输出。如果我使用以下选项运行上一个命令

opt-< system("Rscript --max-ppsize=500000, my_script.s", internal = TRUE)

我将终端的标准输出作为输出(作为字符向量),但不是所需的输出。

考虑一下这个玩具示例:

将以下代码保存在my_script.R

print("first call")
rnorm(15)
print("second call")
rnorm(20)

并从控制台运行以下代码

a <- system("Rscript my_script.R", intern = TRUE)
a 

如您所见,输出是一个长度为9的字符向量,标准输出到控制台。

如果你修改my_script.R如下

print("first call")
i_want_this <- rnorm(20)

然后再次运行

a <- system("Rscript my_script.R", intern = TRUE)
a 

现在唯一存储在 a 中的是打印命令的输出。

我的问题是:有没有办法收集 i_want_this 变量作为r对象(在这种情况下是长度为20的数字向量)?

有一个类似的问题被问到here,没有令人满意的答案。

0 个答案:

没有答案