1

我是 R 新手,遇到了一个问题。我将通过一个例子来解释它。

我正在使用 R 和 php。我有一个计算线性回归的 R 脚本:

reg_result <- lm( Y ~ A1 + A2 + A3, data=query_result)

我正在使用回归结果reg_resultprediction

predict(reg_result, another_dataframe, interval="predict", level = 0.20)

它工作得很好。

但我的问题是我需要在某些时间间隔内使用predictwith reg_result,比如说每 1 小时一次。

那么有什么方法可以保留回归的结果reg_result以供以后使用。

我使用过 RMySQL,但我不知道如何将回归结果存储在 mysql 中。

任何帮助将不胜感激。

如果需要,我可以提供更多详细信息。

编辑:是否可以将 R 对象存储在MySQL blobRMySQL 中?正如我用谷歌搜索发现的那样Currently there are no facilities to import/export BLOBs. in RMySQL

4

2 回答 2

2

ROLO 提供的解决方案非常好,并且与我需要的一样工作。

但我采用了其他方法来降低复杂性。

1) 将结果存储在二进制文件中

reg_result <- lm( Y ~ A1 + A2 + A3, data=query_result)
saveRDS(reg_result,"example.dat");

2)并在需要时加载

reg_result <- readRDS("example.dat", refhook = NULL);
predict(reg_result, another_dataframe, interval="predict", level = 0.20)

希望它可以帮助其他人了解如何将回归结果存储在二进制文件中并在需要时进行检索。

于 2012-07-24T06:22:07.623 回答
2

我所做的(使用 RODBC,但这是一个小细节)是从 lm 对象中提取回归系数,如下所示(对于 y~x):

intercept = lm$coefficients[["(Intercept)"]]
slope = lm$coefficients[["x"]])

然后将这些系数存储在数据库表中,稍后只需使用线性函数与表中的值进行预测,而不是使用预测方法(如f <- function(x) { intercept + slope*x })。

于 2012-07-20T10:34:19.423 回答