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