将.RData文件序列化到数据库

har*_*hal 8 database r rdata

我正在开发一个项目,我有很多分析师在R中创建统计模型.他们通常为我提供模型对象(.Rdata文件),并为各种数据集自动执行它们.

我的问题是:

  • 我可以使用数据库并将这些.RData文件保存在那里吗?这样做的任何提示?(我目前将.Rdata文件存储到磁盘并使用数据库存储位置信息)

  • 我从其他分析师那里获得了许多R脚本,他们在创建模型之前已对数据进行了一些预处理.有没有人有使用PMML的经验,无需人工干预即可重复此过程?PMML存储预处理步骤,将建模步骤作为标记标记存储,并在新数据集上重复相同步骤.

感谢您的建议和反馈.

-苛刻

Jor*_*eys 6

是的,这是可能的使用链接至R与例如MySQL的RMySQLDBI封装,或通过RODBCRJDBC包.我不是100%确定它们是否都支持blob,但最糟糕的情况是你可以使用ascii表示并将它们放在文本字段中.

诀窍是使用该功能 serialize()

> x <- rnorm(100)
> y <- 5*x+4+rnorm(100,0,0.3)
> tt <- lm(y~x)
> obj <- serialize(tt,NULL,ascii=T)
Run Code Online (Sandbox Code Playgroud)

现在,您可以在数据库中存储或检索obj.它实际上只不过是ascii(或二进制)代码的向量.ascii = F为您提供二进制表示.检索后,您使用:

> unserialize(obj)
Call:
lm(formula = y ~ x)

Coefficients:
(Intercept)            x  
      4.033        4.992  
Run Code Online (Sandbox Code Playgroud)

编辑:关于pmml,pmmlCRAN上有一个包.也许那个人会把你送到某个地方?