Opencpu数据缓存

Opencpu data caching

我的专长是java。我使用 R 进行非常具体的分析。

问题

  1. 我的理解是,每次 API 调用 opencpu 都会打开一个新的 R 会话。

  2. 我的函数将使用线性判别分析的预测方法(来自 MASS 包的 lda)对数据输入进行分类。

  3. 对 100000+ 个案例和 150+ 个因子水平的初始线性判别分析需要时间(超过 30 秒)。这个函数returns一个列表。

  4. 后面的预测函数很快returns一个简单的向量

方法

  1. 我运行一个opencpu函数到运行初始lda。这只需要运行一次。

  2. 我希望我的第二个函数仅 运行 预测函数。如果将 lda 作为全局变量保存,这是可能的。

  3. 我的理解是opencpu中不能有全局变量。所以我必须将lda缓存在文件系统上。

  4. 总之,我只需要运行 lda 一次,然后将分析(列表)保存在内存或文件系统中。然后我在调用预测时检索 lda 分析。

问题

哪种方法最好,如何实施?

  1. 我可以使用创建和 returns lda 的 opencpu 函数。然后,当我调用预测时,我可以从文件系统中检索 lda 对象(列表)。但是我如何从文件系统中检索列表。 opencpu怎么知道它在哪里?

  2. 我可以使用 r.cache 包。我以前没有使用过这个包,但文档表明这是一个解决方案。这行得通吗?

如有任何建议,我们将不胜感激。

最佳 杰克

包r.cache很轻松的解决了问题