3

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

4

4 回答 4

10

您可以简单地使用 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")
于 2013-06-07T19:21:37.957 回答
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”。当然,即使您将 .txt 而不是 .pmml 放在 sink() 命令中,这也会起作用,例如:

sink("mypmml.txt")

编辑:添加 cat 命令以将 xml 标签放在顶部,感谢 J.Dimeo

于 2013-11-19T11:13:32.090 回答
2

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

于 2013-06-04T21:25:24.863 回答
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)
于 2013-06-04T21:32:44.293 回答