setClass("my.map",
representation(
id = "character",
option = "character",
content = "character"
))
my.mapH = function(data) {
if (.Platform$OS.type == "windows") {
locate = Sys.getlocale("LC_CTYPE")
Sys.setlocale("LC_CTYPE", "eng")
}
if (!is.data.frame(data)) {
stop("Map data should be a data frame.")
}
if (ncol(data) <3 | nrow(data) == 0) {
stop("Data should have at least 3 columns and 1 row")
}
if (!is.numeric(data[1, 1]) |
!is.numeric(data[1, 2]) |
!is.numeric(data[1, 3])) {
data[, 1] = as.numeric(data[, 1])
data[, 2] = as.numeric(data[, 2])
data[, 3] = as.numeric(data[, 3])
}
heatdata = apply(data, 1, function(x) {
out = sprintf('[%s,%s,%s]', x[1], x[2], x[3])
return(out)
})
heatdata = paste(heatdata, collapse = ",\n")
### write remap object
output = new("my.map")
output@id = paste('ID', format(Sys.time(), "%Y%m%d%H%M%S"),
round(proc.time()[3] * 100), sep = "_")
output@option = html.data.H$option
head = html.data.H$head
foot = html.data.H$foot
if (.Platform$OS.type == "windows") {
Sys.setlocale("LC_CTYPE", "chs")
}
output@option = sub("forChange", "һ", output@option)
output@option = sub("heatMapData",
heatdata, output@option)
## optionNameData
output@option = sub("optionNameData",
paste0("option", output@id), output@option)
outputFoot = sub("optionNameData",
paste0("option", output@id), foot)
output@option = strsplit(output@option, "kkkmmm")[[1]][2]
output@content = paste(head, output@option, outputFoot, sep = "\n")
if (.Platform$OS.type == "windows") {
Sys.setlocale("LC_CTYPE", locate)
}
return(output)
}
html.data.H = list(
head = "
"utf-8\">
"main\">
"
)