# NOT RUN {
# Make a sample model:
fit <- lm(Sepal.Length ~ ., data = iris[, -5])
fit_pmml <- pmml(fit)
# The resulting model has mining fields with no information besides
# fieldName, dataType and optype. This object is already an xml
# node (not an external text file), so there is no need to convert
# it to an xml node object.
# Create data frame with attribute information:
attributes <- data.frame(c("FlowerWidth", 1), c("FlowerLength", 0),
stringsAsFactors = FALSE
)
rownames(attributes) <- c("displayName", "isCyclic")
colnames(attributes) <- c("Sepal.Width", "Petal.Length")
# Although not needed in this first try, necessary to easily add
# new values later. Removes values as factors so that new values
# added later are not evaluated as factor values and thus rejected
# as invalid.
attributes[] <- lapply(attributes, as.character)
fit_pmml_2 <- add_data_field_attributes(fit_pmml,
attributes,
namespace = "4_4"
)
# Alternative method to add attributes to a single field,
# "Sepal.Width":
fit_pmml_3 <- add_data_field_attributes(
fit_pmml, c(displayName = "FlowerWidth", isCyclic = 1),
"Sepal.Width"
)
mi <- make_intervals(
list("openClosed", "closedClosed", "closedOpen"),
list(NULL, 1, 2), list(1, 2, NULL)
)
mv <- make_values(
list("A", "B", "C"), list(NULL, NULL, NULL),
list("valid", NULL, "invalid")
)
fit_pmml_4 <- add_data_field_children(fit_pmml,
field = "Sepal.Length",
interval = mi, values = mv
)
# }
Run the code above in your browser using DataLab