我有一系列用于执行多个数据步骤的R脚本
我需要的分析。其中一些需要很长时间才能真正创造
大物件。我注意到,如果我只是连续地(通过main.R
脚本)获取所有这些内容,那么
对于后续步骤的处理比我输出一个脚本需要更长的时间,保存
我需要什么,并重新启动R进行下一步(加载我需要的数据)。
我想知道是否有
方式,也许通过Rscript
或Bash
脚本,我可以执行此操作。
需要有前两个脚本持续存在的对象(加载
我的外部数据并创建将用于所有进一步的对象
脚步)。我想我也可以保存它们并将它们加载到更多的脚本中。
(我还希望将一些命名参数传递给这个脚本,我认为我可以在其他SO帖子上找到它,并且可以使用类似optparse
的内容。)
因此,我认为脚本看起来像这样:
#! /bin/bash
Rscript 01_load.R # Objects would persist, ideally
Rscript 02_create_graphs.R # Objects would persist, ideally
Rscript 03_random_graphs.R # contains code to save objects
#exit R
Rscript 04_permutation_analysis.R # would have to contain code to load data
#exit
等等。这个问题有方法解决吗?我在64位CentOS 6上使用R 3.2.2
。谢谢。
答案 0 :(得分:0)
克里斯,
听起来你应该使用gc()
和rm()
在你的步骤之间(或之内)做一些人工管理。有关详细信息,请参阅help(gc)
和help(rm)
。
因此,您可以执行以下操作,而不是退出R并重新启动它:
rm(list = ls())
gc()
但请注意:rm(list = ls())
会丢弃所有物品。最好创建一个合适的对象列表,并将其放在rm()
。