我的专长是java。我使用R进行非常具体的分析。
问题
我的理解是每次对opencpu的API调用都会打开一个新的R会话。
我的功能将使用线性判别分析的预测方法(来自MASS包的lda)对数据输入进行分类。
对100000多个病例和150多个因子水平的初始线性判别分析需要时间(超过30秒)。此函数返回一个列表。
后续预测功能很快,并返回一个简单的矢量。
APPROACH
我运行一个opencpu函数来运行初始的lda。这只需要运行一次。
我希望我的第二个功能只运行预测功能。如果将lda保存为全局变量,则可以这样做。
我的理解是opencpu中不可能有全局变量。所以我必须在文件系统上缓存lda。
总而言之,我只需运行一次lda并将分析(列表)保存在内存或文件系统中。然后,我在调用预测时检索lda分析。
问题
哪种方法最好,以及如何实施?
我可以使用opencpu函数创建并返回lda。然后当我调用预测时,我可以从文件系统中检索lda对象(列表)。但是如何从文件系统中检索列表。 opencpu如何知道它在哪里?
我可以使用r.cache包。我之前没有使用过这个软件包,但是文档认为这是一个解决方案。这会有用吗?
任何建议都会深表感谢。
最好杰克
答案 0 :(得分:2)
包r.cache很容易解决问题