Revision 899d6ebe6d6f86090ba8c139b6c970b4c326e5b0 authored by Edzer Pebesma on 16 September 2011, 00:00:00 UTC, committed by Gabor Csardi on 16 September 2011, 00:00:00 UTC
1 parent 8c9f4d1
set.R
# $Id: set.q,v 1.7 2008-12-16 14:59:22 edzer Exp $
gstat.set <- function(set) {
if(!is.list(set))
stop("set should be a list")
if (length(set) == 0)
return(NULL)
ret = NULL
n = names(set)
for (i in (1:length(set))) {
val = set[[i]]
if (n[i] == "method")
str = paste("method: ", val, ";", sep="")
else {
if (is.character(val))
val = paste("'", val, "'", sep = "")
str = paste("set ", n[i], " = ", val, ";", sep="")
}
ret = c(ret, str)
}
ret
}
gstat.load.set <- function(set) {
str = gstat.set(set)
if (!is.null(str)) {
ret = .Call("gstat_load_command", str)
if (ret != 0) {
print(list(class = class(ret), value = ret))
stop(paste("error occured when parsing command:", str[ret]))
}
}
invisible()
}
gstat.load.merge <- function(obj) {
gstat.merge <- function(obj) {
ret = NULL
for (i in 1:length(obj$merge)) {
m = obj$merge[[i]]
if (is.character(m) && length(m) == 4) {
id = match(m[c(1,3)], names(obj$data)) - 1 # name ->> id
if (any(is.na(id)))
stop(paste("could not match all ids:", m[c(1,3)]))
col = as.integer(m[c(2,4)]) - 1
if (any(is.na(col)) || any(col < 0))
stop("merge: parameters should be positive integers")
str = paste("merge", id[1], "(", col[1], ") with", id[2],
"(", col[2], ");")
ret = c(ret, str)
} else stop(
"list elements of merge should be lenght 4 character vectors")
}
ret
}
if (is.character(obj$merge) && length(obj$merge) == 2)
obj$merge = list(c(obj$merge[1], 1, obj$merge[2], 1))
if (is.list(obj$merge)) {
str = gstat.merge(obj)
ret = .Call("gstat_load_command", str)
if (ret != 0) {
print(list(class = class(ret), value = ret))
stop(paste("error occured when parsing command:", str[ret]))
}
} else
stop("merge argument should be list or character vector of lenght 2")
}
Computing file changes ...