-2

我正在使用 250 x 250 矩阵。但是,计算它需要大量时间。至少需要一个小时。

是否有可能我可以将这个矩阵存储在 R 的内存中,这样每次我打开 R 时,它就已经存在了。

理想情况下,我想知道是否可以在 R 中在后台运行作业,这样我就不必等待一个小时来取出矩阵并能够使用它。

4

3 回答 3

5

1)关闭R时可以保存R的工作区。通常R会问“保存工作区图像?” 当你关闭它时。如果您回答“是”,它会将工作区保存在名为“.Rdata”的文件中,并在启动新的 R 实例时加载它。

2)更好的选择(更安全)是显式保存矩阵。有几种选择如何完成。选项之一是将其保存为 Rdata 文件:

save(m, file = "matrix.Rdata")

m你的矩阵在哪里。

您可以随时加载矩阵

load("matrix.Rdata")

如果您在同一个工作目录中。

3)R没有后台计算这样的选项。但是你可以打开几个R实例。在一个实例中进行计算,在另一个实例中执行其他操作。

于 2013-08-22T12:20:22.847 回答
2

有什么帮助是在计算后将其输出到文件,然后在每次打开 R 时解析该文件。为自己编写一个 computeMatrix() 函数或脚本以生成一个以合理格式存储的矩阵的文件。还要自己编写一个 loadMatrix() 函数或脚本来读取该文件并将矩阵加载到内存中以供使用,然后在每次启动 R 并想要使用矩阵时调用或运行 loadMatrix。

就在后台运行 R 作业而言,您可以使用语法“R CMD BATCH scriptName”从命令行运行 R 脚本,并将 scriptName 替换为您的脚本名称。

于 2013-08-22T10:32:47.333 回答
-1

使用 ff 包并将矩阵保存为 ff 对象可能会更好。这意味着实际的矩阵将以有效的方式保存在磁盘上,然后当您启动新的 R 会话时,您可以指向同一个文件,而无需将整个矩阵加载到内存中。当您需要矩阵的一部分时,只会加载您需要的部分,因此速度会更快。即使您需要将整个矩阵加载到内存中,它也应该比读取文本文件加载得更快。

于 2013-08-22T16:24:46.663 回答