Простой вопрос: я сохранил код PMML объекта R, используя pmmlcode <- pmml(my.object)
, и мне нужен способ сохранить его непосредственно в текстовый файл. Обычный метод write.table
не работает, потому что данные не являются таблицей.
Экспортировать PMML в текстовый файл?
Ответы (4)
Попробуйте toString.XMLNode
из пакета XML
, а затем запишите в файл с writeLines
. Вам нужно будет предоставить пример данных для более полного ответа.
Вы можете просто использовать 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")
Я использую данные радужной оболочки только для создания фиктивного файла pmml и команды приемника, чтобы поместить ваш вывод 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 должен быть сохранен везде, где установлен ваш setwd в вашем .Rprofile , по умолчанию в Windows это «Mydocuments». Конечно, это будет работать, даже если вы поместите .txt вместо .pmml в команду sink(), что-то вроде:
sink("mypmml.txt")
Редактировать: добавлена команда cat для размещения тегов xml сверху. Спасибо J.Dimeo.
cat("<?xml version=\"1.0\"?>\n")
сразу после вызова стока и перед кодом pmml.
- person J. Dimeo; 11.07.2014
В отсутствие тестового кода для создания этого, но после решения моей предыдущей проблемы с доступностью пакета pmml на зеркале UCLA CRAN. Это дает приемлемый вывод для удобочитаемости человеком, хотя и не в формате, который будет интерпретирован моим приложением, поддерживающим PMML:
cat(paste(unlist(pmmlcode),"\n"), file="yourfile.txt")
Ни один из них не работал:
Если это просто вектор символов:
cat(pmmlcode, file="yourfile.txt")
Или, если это список:
lapply(pmmlcode, cat, file="yourfile.txt", append=TRUE)