1
2
3.makeSpatDF <- function(d) {
4	x <- methods::new("Rcpp_SpatDataFrame")
5	cls <- sapply(d, class)
6	nms <- colnames(d)
7	for (i in 1:length(cls)) {
8		if (cls[i] == "factor") {
9			x$add_column_string(as.character(d[[i]]), nms[i])
10		} else if (cls[i] == "character") {
11			x$add_column_string(d[[i]], nms[i])
12		} else if (cls[i] == "integer") {
13			v <- d[[i]]
14			# min long
15			v[is.na(v)] <- -2147483648
16			x$add_column_long(v, nms[i])
17		} else {
18			v <- as.numeric(d[[i]])
19			x$add_column_double(v, nms[i])
20		}
21	}
22	x
23}
24
25
26.getSpatDF <- function(x) {
27	d <- data.frame(x$values(), check.names = FALSE, stringsAsFactors=FALSE)
28	d[d=="NA"] <- NA
29	s <- which(sapply(d, class) == "character")
30	for (i in s) Encoding(d[[i]]) <- "UTF-8"
31	d
32}
33
34