将PMML导出到文本文件?

时间:2013-06-04 21:03:58

标签: r pmml

简单的问题,我使用pmmlcode <- pmml(my.object)存储了R对象的PMML代码,我想用某种方法将其直接保存到文本文件中。通常的write.table方法无效,因为数据不是表格。

4 个答案:

答案 0 :(得分:9)

您可以像下例中一样使用SaveXML:

library(randomForest)

library(pmml)

data(airquality)

ozone.out <- randomForest(Ozone ~ Wind+Temp+Month, data=na.omit(airquality), ntree=200)

saveXML(pmml(ozone.out, data=airquality), "airquality_rf.pmml")

答案 1 :(得分:2)

toString.XMLNode包中尝试XML,然后使用writeLines写入文件。您需要提供示例数据以获得更完整的答案。

答案 2 :(得分:2)

我正在使用iris数据生成一个虚拟pmml文件和sink命令,将你的pmml输出放入.pmml文件中,

    R > library(pmml)
    R > lml <- lm(iris$Sepal.Length~iris$Sepal.Width)
    R > sink("myPmml.pmml")
    R > cat("<?xml version=\"1.0\"?>\n")
    R > pmml(lml)
    R > sink()

输出myPmml.pmml应该保存在.Rprofile上设置setwd的任何地方,默认情况下是Windows中的“Mydocuments”。即使您在sink()命令中放入.txt而不是.pmml,这也会起作用,例如:

sink("mypmml.txt")

编辑:添加cat命令将xml标记放在最上面,感谢J.Dimeo

答案 3 :(得分:1)

在缺少测试代码的情况下创建了这个,但在解决了我之前在UCLA CRAN镜像上提供pmml软件包的问题。这为人类可读性提供了可接受的输出,尽管不是一种可以解释我的PMML感知应用程序的格式:

cat(paste(unlist(pmmlcode),"\n"), file="yourfile.txt")

这些都没有奏效:

如果它只是一个字符向量:

cat(pmmlcode, file="yourfile.txt")

或者如果它是一个列表:

lapply(pmmlcode, cat, file="yourfile.txt", append=TRUE)