我在一个环境中工作,在那里我们非常依赖Excel来完成统计工作。我们有自己的Excel工作簿,可以创建报告,图表和计算模型。但有时候Excel还不够,所以我们想用R来增强数据处理能力。
我正在开发一个相当通用的低级Excel工作簿,它能够将存储在Excel工作簿中的数据结构转换为R using rcom and RExcel macros。由于数据很大,将它们移植到R中的过程很长(就按下F9重新计算工作簿后需要等待的时间而来),所以我开始为Excel工作簿开发缓存功能。
通过在保存的对象中嵌入一个额外的属性来实现缓存,这是一个函数,用于检查具有数据结构的Excel工作簿的mtime
自R对象开始以来是否没有更改创建。此外,模板支持将对象保存到磁盘中,因此下次在执行主要涉及R的计算时,首先不必使用工作簿和原始Excel数据结构。
虽然在大多数情况下用户不关心,但在内部有时将数据保存到一个R对象(如data.frame
)更自然,有时似乎保存整个集合多个R对象更直观。
保存单个R对象时,saveRDS
更方便,所以我更喜欢save
,它仅适用于多个对象。 (我知道,我总是可以通过在列表中组合它们来将多个对象渲染成一个对象)
根据saveRDS
的手册,save
生成的文件的前5个字节等于RDXs\n
的ASCII表示。是否有任何准备好的功能来测试,或者我应该手动打开文件asbinary,读取5个字节,如果文件没有甚至5个字节就捕获一个角落案例,关闭文件等等?