我正在使用250 x 250矩阵。但是,计算这个需要花费很多时间。至少需要一个小时。
我是否有可能将此矩阵存储在R中的内存中,这样每次打开R时,它都已存在。
理想情况下,我想知道是否可以在R中运行背景作业,这样我就不必等待一个小时才能将矩阵输出并能够使用它。
答案 0 :(得分:5)
1)关闭R时可以保存R的工作空间。通常R会问“保存工作区图像?”当你关闭它。如果您回答“是”,它会将工作区保存在名为“.Rdata”的文件中,并在启动新的R实例时加载它。
2)更好的选择(更安全)是明确保存矩阵。有几种选择如何完成。其中一个选项是将其保存为Rdata文件:
save(m, file = "matrix.Rdata")
其中m
是您的矩阵。
您可以随时使用
加载矩阵load("matrix.Rdata")
如果你在同一个工作目录上。
3)R没有像背景计算这样的选项。但是你可以打开几个R实例。在一个实例中进行计算,并在其他实例上执行其他操作。
答案 1 :(得分:2)
在计算文件时将其输出到文件然后在每次打开R时解析该文件会有所帮助。自己编写一个computeMatrix()函数或脚本来生成一个文件,其中矩阵以合理的格式存储。另外写一个loadMatrix()函数或脚本来读取该文件并将矩阵加载到内存中以供使用,然后每次启动R时调用或运行loadMatrix并希望使用矩阵。
在后台运行R作业方面,您可以从命令行运行R脚本,语法为“R CMD BATCH scriptName”,脚本名称替换为脚本名称。
答案 2 :(得分:-1)
使用ff包并将矩阵保存为ff对象可能更好。这意味着实际矩阵将以有效的方式保存在磁盘上,然后当您启动新的R会话时,您可以指向同一个文件而无需将整个矩阵加载到内存中。当您需要矩阵的一部分时,只会加载您需要的部分,因此它会更快。即使您需要将整个矩阵加载到内存中,它也应该比读取文本文件更快地加载。