Last updated on 2026-02-15 07:51:18 CET.
| Package | ERROR | NOTE | OK |
|---|---|---|---|
| diseasemapping | 2 | 12 | |
| geostatsp | 3 | 3 | 8 |
| mapmisc | 14 |
Current CRAN status: NOTE: 2, OK: 12
Version: 2.0.6
Check: package dependencies
Result: NOTE
Package which this enhances but not available for checking: ‘INLA’
Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64
Current CRAN status: ERROR: 3, NOTE: 3, OK: 8
Version: 2.0.8
Check: examples
Result: ERROR
Running examples in ‘geostatsp-Ex.R’ failed
The error most likely occurred in:
> ### Name: RFsimulate
> ### Title: Simulation of Random Fields
> ### Aliases: RFsimulate modelRandomFields RFsimulate RFsimulate-methods
> ### RFsimulate,ANY,SpatRaster-method RFsimulate,numeric,SpatRaster-method
> ### RFsimulate,numeric,SpatVector-method
> ### RFsimulate,RMmodel,SpatVector-method
> ### RFsimulate,RMmodel,SpatRaster-method
> ### RFsimulate,matrix,SpatRaster-method
> ### RFsimulate,matrix,SpatVector-method RFsimulate,data.frame,ANY-method
> ### Keywords: spatial
>
> ### ** Examples
>
> library('geostatsp')
>
> # exclude this line to use the RandomFields package
> options(useRandomFields = FALSE)
>
> model1 <- c(var=5, range=1,shape=0.5)
>
>
> myraster = rast(nrows=20,ncols=30,extent = ext(0,6,0,4),
+ crs="+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs")
>
> set.seed(0)
>
> simu <- RFsimulate(model1, x=myraster, n=3)
install the RandomFields package for faster simulations
OMP: Warning #96: Cannot form a team with 24 threads, using 2 instead.
OMP: Hint Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set).
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 2.0.8
Check: tests
Result: ERROR
Running ‘RFsimulate.R’ [0m/90m]
Running the tests in ‘tests/RFsimulate.R’ failed.
Complete output:
> library("geostatsp")
Loading required package: Matrix
Loading required package: terra
terra 1.8.93
>
> model <- c(var=5, range=20,shape=0.5)
>
> # any old crs
> theCrs = "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs"
>
> # don't test using the randomFields package, it's currently broken on some R builds
> options(useRandomFields = FALSE)
>
> myraster = rast(nrows=20,ncols=20,extent = ext(100,110,100,110),
+ crs=theCrs)
>
> set.seed(0)
> simu = RFsimulate(model = rbind(a=model, b=model+0.1),
+ x=myraster, n=4
+ )
OMP: Warning #96: Cannot form a team with 24 threads, using 2 instead.
OMP: Hint Consider unsetting KMP_DEVICE_THREAD_LIMIT (KMP_ALL_THREADS), KMP_TEAMS_THREAD_LIMIT, and OMP_THREAD_LIMIT (if any are set).
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 2.0.8
Check: examples
Result: ERROR
Running examples in ‘geostatsp-Ex.R’ failed
The error most likely occurred in:
> ### Name: RFsimulate
> ### Title: Simulation of Random Fields
> ### Aliases: RFsimulate modelRandomFields RFsimulate RFsimulate-methods
> ### RFsimulate,ANY,SpatRaster-method RFsimulate,numeric,SpatRaster-method
> ### RFsimulate,numeric,SpatVector-method
> ### RFsimulate,RMmodel,SpatVector-method
> ### RFsimulate,RMmodel,SpatRaster-method
> ### RFsimulate,matrix,SpatRaster-method
> ### RFsimulate,matrix,SpatVector-method RFsimulate,data.frame,ANY-method
> ### Keywords: spatial
>
> ### ** Examples
>
> library('geostatsp')
>
> # exclude this line to use the RandomFields package
> options(useRandomFields = FALSE)
>
> model1 <- c(var=5, range=1,shape=0.5)
>
>
> myraster = rast(nrows=20,ncols=30,extent = ext(0,6,0,4),
+ crs="+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs")
>
> set.seed(0)
>
> simu <- RFsimulate(model1, x=myraster, n=3)
install the RandomFields package for faster simulations
Flavor: r-devel-linux-x86_64-fedora-gcc
Version: 2.0.8
Check: tests
Result: ERROR
Running ‘RFsimulate.R’ [90m/61m]
Running ‘krige.R’ [22s/48s]
Running ‘lgcp.R’ [71s/122s]
Running ‘lgm.R’ [67s/78s]
Running ‘lgmRaster.R’ [0m/25m]
Running ‘likfitLgm.R’
Running the tests in ‘tests/RFsimulate.R’ failed.
Complete output:
> library("geostatsp")
Loading required package: Matrix
Loading required package: terra
terra 1.8.93
>
> model <- c(var=5, range=20,shape=0.5)
>
> # any old crs
> theCrs = "+proj=utm +zone=17 +datum=NAD27 +units=m +no_defs"
>
> # don't test using the randomFields package, it's currently broken on some R builds
> options(useRandomFields = FALSE)
>
> myraster = rast(nrows=20,ncols=20,extent = ext(100,110,100,110),
+ crs=theCrs)
>
> set.seed(0)
> simu = RFsimulate(model = rbind(a=model, b=model+0.1),
+ x=myraster, n=4
+ )
Running the tests in ‘tests/lgmRaster.R’ failed.
Complete output:
> #+ setup
> library('geostatsp')
Loading required package: Matrix
Loading required package: terra
terra 1.8.93
> #'
>
> #' # simulated data
>
> # exclude this line to use the RandomFields package
> options(useRandomFields = FALSE)
>
> Ncell = 40
>
> myRaster = squareRaster(ext(0,6000,0,6000), Ncell)
>
> myParam=c(oneminusar=0.1, conditionalVariance=2.5^2,shape=2)
> myQ = maternGmrfPrec(myRaster, param=myParam)
> attributes(myQ)$info$optimalShape
shape variance range cellSize
4.092496 110.524266 900.000000 150.000000
> set.seed(0)
> mySim = RFsimulate(attributes(myQ)$info$optimalShape, myRaster)
install the RandomFields package for faster simulations
Flavor: r-devel-linux-x86_64-fedora-gcc
Version: 2.0.8
Check: tests
Result: ERROR
Running ‘RFsimulate.R’ [3s/3s]
Running ‘krige.R’ [3s/3s]
Running ‘lgcp.R’ [12s/12s]
Running ‘lgm.R’ [7s/7s]
Running ‘lgmRaster.R’ [39s/21s]
Running ‘likfitLgm.R’ [2s/2s]
Running ‘matern.R’ [2s/2s]
Running ‘maternGmrfPrec.R’ [3s/3s]
Running ‘profLlgm.R’ [2s/2s]
Running the tests in ‘tests/profLlgm.R’ failed.
Complete output:
>
> library('geostatsp')
Loading required package: Matrix
Loading required package: terra
terra 1.8.93
> data('swissRain')
> swissRain = unwrap(swissRain)
> swissAltitude = unwrap(swissAltitude)
>
> Ncores = c(1,2)[1+(.Platform$OS.type=='unix')]
>
>
>
> sr2 = swissRain
> sr2$elev = extract(swissAltitude, sr2)
Warning message:
[`[[<-`] only using the first column
> swissFit = likfitLgm(
+ data=sr2,
+ formula=rain~ elev,
+ param=c(range=10000,shape=1,nugget=0,boxcox=0.5,anisoRatio=2,anisoAngleDegrees=45),
+ paramToEstimate = c("range",'anisoAngleDegrees','anisoRatio'),
+ reml=FALSE,
+ verbose=FALSE
+ )
>
>
> # calculate log-likelihood at the MLE's, but re-estimate variance
> sl = loglikLgm(
+ swissFit$param[c('range','shape','boxcox', 'anisoRatio', 'anisoAngleRadians')],
+ data=sr2,
+ formula=rain~ elev,
+ reml=swissFit$model$reml)
>
>
> # calculate log-likelihood without re-estimating variance
> sigSqHat = attributes(sl)$totalVarHat
> sl1 = loglikLgm(
+ c(attributes(sl)$param[
+ c('boxcox','anisoRatio','anisoAngleRadians','shape', 'range')],
+ variance=sigSqHat),
+ data=sr2,
+ formula=rain~ elev,
+ reml=swissFit$model$reml)
>
>
> # re=estimate the anisotropy parameters but not the range
> sf2 = likfitLgm(
+ data=swissFit$data,
+ formula=swissFit$model$formula,
+ param= swissFit$param[c('range','nugget','shape','boxcox', 'anisoRatio', 'anisoAngleRadians')],
+ paramToEstimate = c('variance','anisoAngleRadians','anisoRatio'),
+ reml=swissFit$model$reml)
>
> # these should all be the same
> as.numeric(sl1)
[1] 644.4812
> as.numeric(sl)
[1] 644.4812
> swissFit$optim$logL
m2logL.ml logL.ml
644.4812 -322.2406
> sf2$optim$logL
m2logL.ml logL.ml
644.4812 -322.2406
>
> date()
[1] "Fri Feb 13 15:03:43 2026"
> x=profLlgm(swissFit, mc.cores=Ncores,
+ range=seq(15000, 55000 , len=12)
+ )
*** caught segfault ***
address 0x110, cause 'invalid permissions'
*** caught segfault ***
address 0x110, cause 'invalid permissions'
Traceback:
1: (function (formula, data, paramToEstimate = c("range", "nugget"), reml = TRUE, coordinates = data, param = NULL, upper = NULL, lower = NULL, parscale = NULL, verbose = FALSE) { param = param[!is.na(param)] coordinatesOrig = coordinates aniso = as.logical(length(grep("^aniso", c(names(param), paramToEstimate)))) | any(abs(param["anisoRatio"] - 1) > 1e-05, na.rm = TRUE) if (aniso) { if (is.matrix(coordinates)) { if (ncol(coordinates) != 2 | nrow(coordinates) != nrow(data)) stop("anisotropic model requested but coordinates appears to be a distance matrix") coordinates = vect(coordinates) } maxDist = dist(matrix(ext(coordinates), ncol = 2)) } else { if (is.matrix(coordinates)) { if (ncol(coordinates) == 2) { coordinates = dist(coordinates) } else { coordinates = as(coordinates, "dsyMatrix") } } if (any(class(coordinates) == "dist")) coordinates = as(as.matrix(coordinates), "dsyMatrix") if (length(grep("SpatVect", class(coordinates)))) { if (!nchar(crs(coordinates))) terra::crs(coordinates) = "+proj=utm +zone=1" coordinates = new("dsyMatrix", Dim = rep(length(coordinates), 2), x = as.vector(as.matrix(terra::distance(coordinates))), uplo = "L") } maxDist = max(coordinates, na.rm = TRUE) } trend = formula theFactors = NULL if (any(class(trend) == "formula")) { data = data.frame(data) theNA = apply(data[, all.vars(trend), drop = FALSE], 1, function(qq) any(is.na(qq))) noNA = !theNA theFactors = model.frame(trend, data[noNA, ]) whichFactors = unlist(lapply(theFactors, is.factor)) theFactors = theFactors[, whichFactors, drop = FALSE] theFactors = lapply(theFactors, levels) theFactors = unlist(lapply(theFactors, function(qq) qq[1])) covariates = model.matrix(trend, data[noNA, ]) covariates = covariates[, grep(paste("^(", paste(names(theFactors), collapse = "|"), ")NA$", sep = ""), colnames(covariates), invert = TRUE), drop = FALSE] observations = all.vars(trend)[1] if (!any(names(data) == observations)) warning("can't find observations ", observations, "in data") observations = data[noNA, observations, drop = FALSE] } else { trend = as.matrix(trend) theNA = is.na(data) | apply(trend, 1, function(qq) any(is.na(qq))) noNA = !theNA observations = data[noNA] covariates = trend[noNA, , drop = FALSE] } if (any(theNA)) { if (length(grep("^SpatVector", class(coordinates)))) { coordinates = coordinates[noNA] } else { if (ncol(coordinates) == nrow(coordinates)) { coordinates = coordinates[noNA, noNA] } else { coordinates = coordinates[noNA, ] } } } estimateVariance = TRUE if (any(paramToEstimate == "variance")) { paramToEstimate = paramToEstimate[paramToEstimate != "variance"] param = param[names(param) != "variance"] } else { if (any(names(param) == "variance")) { estimateVariance = FALSE } } paramToEstimate = gsub("anisoAngleDegrees", "anisoAngleRadians", paramToEstimate) degToRad = function(par) { if (length(grep("anisoAngleDegrees", names(par)))) { if (!length(grep("anisoAngleRadians", names(par)))) par["anisoAngleRadians"] = 2 * pi * par["anisoAngleDegrees"]/360 par = par[grep("anisoAngleDegrees", names(par), invert = TRUE)] } par } param = degToRad(param) lower = degToRad(lower) upper = degToRad(upper) parscale = degToRad(parscale) lowerDefaults = c(nugget = 0, range = maxDist/1000, anisoRatio = 0.01, anisoAngleRadians = -pi/2, shape = 0.1, boxcox = -1.5, variance = 0) upperDefaults = c(nugget = Inf, range = 10 * maxDist, anisoRatio = 100, anisoAngleRadians = pi/2, shape = 4, boxcox = 2.5, variance = Inf) paramDefaults = c(nugget = 0, anisoRatio = 1, anisoAngleRadians = 0, shape = 1.5, boxcox = 1, range = maxDist/10) if (any(names(paramToEstimate) == "nugget")) { paramDefaults["nugget"] = 1 } parscaleDefaults = c(range = maxDist/5, nugget = 0.05, boxcox = 0.5, anisoAngleRadians = 0.2, anisoRatio = 1, variance = 1, shape = 0.2) ndepsDefault = c(range = 0.01, nugget = 0.05, boxcox = 0.005, anisoAngleRadians = 0.01, anisoRatio = 0.01, variance = 0.01, shape = 0.01) paramDefaults[names(param)] = param parscaleDefaults[names(parscale)] = parscale lowerDefaults[names(lower)] = lower upperDefaults[names(upper)] = upper if (any(paramToEstimate == "nugget") & paramDefaults["nugget"] == lowerDefaults["nugget"]) { paramDefaults["nugget"] = min(c(0.5, upperDefaults["nugget"])) } startingParam = paramDefaults[paramToEstimate] names(startingParam) = paramToEstimate naStarting = is.na(startingParam) startingParam[naStarting] = paramDefaults[names(startingParam)[naStarting]] moreParams = paramDefaults[!names(paramDefaults) %in% paramToEstimate] allParams = c(startingParam, moreParams) allParams = fillParam(allParams) paramsForC = allParams[c("nugget", "variance", "range", "shape", "anisoRatio", "anisoAngleRadians", "boxcox")] Sparam = names(paramsForC) %in% paramToEstimate names(Sparam) = names(paramsForC) paramToEstimate = names(Sparam)[Sparam] parOptions = cbind(lower = lowerDefaults[paramToEstimate], upper = upperDefaults[paramToEstimate], parscale = parscaleDefaults[paramToEstimate], ndeps = ndepsDefault[paramToEstimate]) forO = list(scalarF = c(fnscale = -1, abstol = -1, reltol = -1, alpha = -1, beta = -1, gamma = -1, factr = 1e+06, pgtol = 0), scalarInt = c(trace = 0, maxit = 200, REPORT = 1, type = -1, lmm = 25, tmax = -1, temp = -1), pars = parOptions[, c("lower", "upper", "parscale", "ndeps"), drop = FALSE]) if (verbose) { forO$scalarInt["trace"] = 6 forO$scalarInt["REPORT"] = 200 } forO$parsInt = rep(0, nrow(forO$pars)) names(forO$parsInt) = rownames(forO$pars) forO$parsInt[forO$pars[, "lower"] != -Inf & forO$pars[, "upper"] != Inf] = 2 forO$parsInt[forO$pars[, "lower"] != -Inf & forO$pars[, "upper"] == Inf] = 1 forO$parsInt[forO$pars[, "lower"] == -Inf & forO$pars[, "upper"] != Inf] = 3 forOparsOrig = forO$pars forO$pars[!is.finite(forO$pars)] = -1 forO$pars = c(forO$pars, rep(0, ncol(covariates) + ncol(covariates)^2)) if (aniso) { xcoord = crds(coordinates)[, 1] ycoord = crds(coordinates)[, 2] } else { xcoord = as.vector(coordinates) ycoord = -99 } obsCov = cbind(y1 = observations, y2 = 0, y3 = 0, covariates) if (all(paramToEstimate == "variance") & param["nugget"] == 0) { theL = loglikLgm(param, data = observations, formula = covariates, coordinates = coordinates, reml = reml) fromOptim = attributes(theL) result = list(optim = list(mle = fillParam(fromOptim$param), logL = c(m2logL = as.numeric(theL), logL = -as.numeric(theL)/2), totalVarHat = fromOptim$totalVarHat, message = "numerical optimization not needed", options = NULL, detail = NULL), betaHat = fromOptim$betaHat, varBetaHat = fromOptim$varBetaHat) } else { fromOptim = .C(C_maternLogLOpt, start = as.double(paramsForC), Sparam = as.integer(Sparam), obsCov = as.double(as.matrix(obsCov)), as.double(xcoord), as.double(ycoord), as.integer(aniso), N = as.integer(c(nrow(obsCov), 3, ncol(covariates))), Ltype = as.integer(reml + 2 * !estimateVariance), optInt = as.integer(forO$scalarInt), optF = as.double(forO$scalarF), betas = as.double(forO$pars), limType = as.integer(forO$parsInt), message = format(" ", width = 80)) names(fromOptim$start) = names(paramsForC) if (fromOptim$start["anisoRatio"] < 1) { fromOptim$start["anisoRatio"] <- 1/fromOptim$start["anisoRatio"] if (fromOptim$start["anisoAngleRadians"] + pi/2 >= pi/2) { fromOptim$start["anisoAngleRadians"] <- fromOptim$start["anisoAngleRadians"] - pi/2 } else { fromOptim$start["anisoAngleRadians"] <- fromOptim$start["anisoAngleRadians"] + pi/2 } } result = list(optim = list(mle = fromOptim$start, logL = c(m2logL = fromOptim$optF[1], logL = -fromOptim$optF[1]/2), totalVarHat = fromOptim$optF[2], boxcox = fromOptim$optF[3:5], determinants = fromOptim$optF[6:7], message = fromOptim$message, options = cbind(start = paramsForC[Sparam], opt = fromOptim$start[Sparam], parOptions[, c("parscale", "lower", "upper", "ndeps")]), detail = fromOptim$optInt[1:3]), betaHat = fromOptim$betas[1:ncol(covariates)], varBetaHat = new("dsyMatrix", Dim = as.integer(rep(ncol(covariates), 2)), uplo = "L", x = fromOptim$betas[seq(1 + ncol(covariates), len = ncol(covariates)^2)])) result$optim$options = cbind(result$optim$options, gradient = fromOptim$betas[seq(ncol(covariates)^2 + ncol(covariates) + 1, len = sum(Sparam))]) names(result$optim$detail) = c("fail", "fncount", "grcount") names(result$betaHat) = colnames(covariates) dimnames(result$varBetaHat) = list(names(result$betaHat), names(result$betaHat)) } result$parameters = fillParam(c(result$optim$mle, result$betaHat)) if (estimateVariance) { result$parameters[c("nugget", "variance")] = result$parameters[c("nugget", "variance")] * result$optim$totalVarHat result$varBetaHat = result$varBetaHat * result$optim$totalVarHat } names(result$optim$logL) = paste(names(result$optim$logL), c(".ml", ".reml")[reml + 1], sep = "") result$data = cbind(data.frame(observations = observations, fitted = covariates %*% result$parameters[colnames(covariates)]), data.frame(data)[noNA, ]) if (abs(result$parameters["boxcox"] - 1) > 1e-04) { if (abs(result$parameters["boxcox"]) < 0.001) { result$data$obsBC = log(observations) } else { result$data$obsBC <- ((observations^result$parameters["boxcox"]) - 1)/result$parameters["boxcox"] } } else { result$data$obsBC <- obsCov[, 1] } result$data$resid = result$data$obsBC - result$data$fitted if (length(grep("^SpatVector", class(coordinatesOrig)))) { forDf = rep(NA, length(noNA)) forDf[noNA] = seq(1, sum(noNA)) theDf = result$data[forDf, ] result$data = vect(x = crds(coordinatesOrig), atts = theDf, crs = crs(coordinatesOrig)) } result$model = list(reml = reml, baseline = theFactors) if (any(class(trend) == "formula")) { result$model$formula = trend result$data[[all.vars(formula)[1]]] = result$data$observations } else { result$model$formula = names(trend) } if (length(result$model$baseline)) { rparams = result$parameters baseParams = data.frame(var = names(result$model$baseline), base = result$model$baseline, pasted = paste(names(result$model$baseline), result$model$baseline, sep = "")) for (D in which(!baseParams$pasted %in% names(rparams))) { sameFac = grep(paste("^", baseParams[D, "var"], sep = ""), names(rparams)) pseq = 1:length(rparams) if (length(sameFac)) { minFac = min(sameFac) toAdd = 0 names(toAdd) = baseParams[D, "pasted"] rparams = c(rparams[pseq < minFac], toAdd, rparams[pseq >= minFac]) } } result$parameters = rparams } parameterTable = data.frame(estimate = result$parameters) rownames(parameterTable) = names(result$parameters) parameterTable$stdErr = NA stdErr = sqrt(Matrix::diag(result$varBetaHat)) parameterTable[rownames(result$varBetaHat), "stdErr"] = stdErr thelims = c(0.005, 0.025, 0.05, 0.1) thelims = c(rbind(thelims, 1 - thelims)) theQ = qnorm(thelims) toadd = outer(parameterTable$stdErr, theQ) toadd = toadd + matrix(parameterTable$estimate, ncol = length(thelims), nrow = dim(parameterTable)[1]) colnames(toadd) = paste("ci", thelims, sep = "") parameterTable = cbind(parameterTable, toadd) parameterTable[, "pval"] = pchisq(parameterTable$estimate^2/parameterTable$stdErr^2, df = 1, lower.tail = FALSE) parameterTable[, "Estimated"] = FALSE parameterTable[paramToEstimate, "Estimated"] = TRUE parameterTable[rownames(result$varBetaHat), "Estimated"] = TRUE if (estimateVariance) parameterTable["variance", "Estimated"] = TRUE rownames(parameterTable) = gsub("^variance$", "sdSpatial", rownames(parameterTable)) rownames(parameterTable) = gsub("^nugget$", "sdNugget", rownames(parameterTable)) parameterTable[c("sdSpatial", "sdNugget"), "estimate"] = sqrt(parameterTable[c("sdSpatial", "sdNugget"), "estimate"]) result$summary = as.data.frame(parameterTable) result$summary$Estimated = as.logical(result$summary$Estimated) result})(param = dots[[1L]][[1L]], data = new("SpatVector", pntr = new("Rcpp_SpatVector", .xData = <environment>)), formula = rain ~ elev, paramToEstimate = c("variance", "anisoRatio", "anisoAngleRadians"), reml = FALSE, coordinates = new("SpatVector", pntr = new("Rcpp_SpatVector", .xData = <environment>)))
2: .mapply(FUN, dots, MoreArgs)
3: FUN(X[[i]], ...)
4: lapply(X = S, FUN = FUN, ...)
5: doTryCatch(return(expr), name, parentenv, handler)
6: tryCatchOne(expr, names, parentenv, handlers[[1L]])
7: tryCatchList(expr, classes, parentenv, handlers)
8: tryCatch(expr, error = function(e) { call <- conditionCall(e) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) call <- sys.call(-4L) dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") if (w > LONG) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : " msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if (!silent && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))})
9: try(lapply(X = S, FUN = FUN, ...), silent = TRUE)
10: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE))
11: FUN(X[[i]], ...)
12: lapply(seq_len(cores), inner.do)
13: mclapply(seq_len(n), do_one, mc.preschedule = mc.preschedule, mc.set.seed = mc.set.seed, mc.silent = mc.silent, mc.cores = mc.cores, mc.cleanup = mc.cleanup, affinity.list = affinity.list)
14: parallel::mcmapply(likfitLgm, param = parList, MoreArgs = list(data = fit$data, formula = fit$model$formula, paramToEstimate = reEstimate, reml = fit$model$reml, coordinates = fit$data), mc.cores = mc.cores, SIMPLIFY = FALSE)
Traceback:
1: (function (formula, data, paramToEstimate = c("range", "nugget"), reml = TRUE, coordinates = data, param = NULL, upper = NULL, lower = NULL, parscale = NULL, verbose = FALSE) { param = param[!is.na(param)] coordinatesOrig = coordinates aniso = as.logical(length(grep("^aniso", c(names(param), paramToEstimate)))) | any(abs(param["anisoRatio"] - 1) > 1e-05, na.rm = TRUE) if (aniso) { if (is.matrix(coordinates)) { if (ncol(coordinates) != 2 | nrow(coordinates) != nrow(data)) stop("anisotropic model requested but coordinates appears to be a distance matrix") coordinates = vect(coordinates) } maxDist = dist(matrix(ext(coordinates), ncol = 2)) } else {15: profLlgm(swissFit, mc.cores = Ncores, range = seq(15000, 55000, len = 12))
An irrecoverable exception occurred. R is aborting now ...
if (is.matrix(coordinates)) { if (ncol(coordinates) == 2) { coordinates = dist(coordinates) } else { coordinates = as(coordinates, "dsyMatrix") } } if (any(class(coordinates) == "dist")) coordinates = as(as.matrix(coordinates), "dsyMatrix") if (length(grep("SpatVect", class(coordinates)))) { if (!nchar(crs(coordinates))) terra::crs(coordinates) = "+proj=utm +zone=1" coordinates = new("dsyMatrix", Dim = rep(length(coordinates), 2), x = as.vector(as.matrix(terra::distance(coordinates))), uplo = "L") } maxDist = max(coordinates, na.rm = TRUE) } trend = formula theFactors = NULL if (any(class(trend) == "formula")) { data = data.frame(data) theNA = apply(data[, all.vars(trend), drop = FALSE], 1, function(qq) any(is.na(qq))) noNA = !theNA theFactors = model.frame(trend, data[noNA, ]) whichFactors = unlist(lapply(theFactors, is.factor)) theFactors = theFactors[, whichFactors, drop = FALSE] theFactors = lapply(theFactors, levels) theFactors = unlist(lapply(theFactors, function(qq) qq[1])) covariates = model.matrix(trend, data[noNA, ]) covariates = covariates[, grep(paste("^(", paste(names(theFactors), collapse = "|"), ")NA$", sep = ""), colnames(covariates), invert = TRUE), drop = FALSE] observations = all.vars(trend)[1] if (!any(names(data) == observations)) warning("can't find observations ", observations, "in data") observations = data[noNA, observations, drop = FALSE] } else { trend = as.matrix(trend) theNA = is.na(data) | apply(trend, 1, function(qq) any(is.na(qq))) noNA = !theNA observations = data[noNA] covariates = trend[noNA, , drop = FALSE] } if (any(theNA)) { if (length(grep("^SpatVector", class(coordinates)))) { coordinates = coordinates[noNA] } else { if (ncol(coordinates) == nrow(coordinates)) { coordinates = coordinates[noNA, noNA] } else { coordinates = coordinates[noNA, ] } } } estimateVariance = TRUE if (any(paramToEstimate == "variance")) { paramToEstimate = paramToEstimate[paramToEstimate != "variance"] param = param[names(param) != "variance"] } else { if (any(names(param) == "variance")) { estimateVariance = FALSE } } paramToEstimate = gsub("anisoAngleDegrees", "anisoAngleRadians", paramToEstimate) degToRad = function(par) { if (length(grep("anisoAngleDegrees", names(par)))) { if (!length(grep("anisoAngleRadians", names(par)))) par["anisoAngleRadians"] = 2 * pi * par["anisoAngleDegrees"]/360 par = par[grep("anisoAngleDegrees", names(par), invert = TRUE)] } par } param = degToRad(param) lower = degToRad(lower) upper = degToRad(upper) parscale = degToRad(parscale) lowerDefaults = c(nugget = 0, range = maxDist/1000, anisoRatio = 0.01, anisoAngleRadians = -pi/2, shape = 0.1, boxcox = -1.5, variance = 0) upperDefaults = c(nugget = Inf, range = 10 * maxDist, anisoRatio = 100, anisoAngleRadians = pi/2, shape = 4, boxcox = 2.5, variance = Inf) paramDefaults = c(nugget = 0, anisoRatio = 1, anisoAngleRadians = 0, shape = 1.5, boxcox = 1, range = maxDist/10) if (any(names(paramToEstimate) == "nugget")) { paramDefaults["nugget"] = 1 } parscaleDefaults = c(range = maxDist/5, nugget = 0.05, boxcox = 0.5, anisoAngleRadians = 0.2, anisoRatio = 1, variance = 1, shape = 0.2) ndepsDefault = c(range = 0.01, nugget = 0.05, boxcox = 0.005, anisoAngleRadians = 0.01, anisoRatio = 0.01, variance = 0.01, shape = 0.01) paramDefaults[names(param)] = param parscaleDefaults[names(parscale)] = parscale lowerDefaults[names(lower)] = lower upperDefaults[names(upper)] = upper if (any(paramToEstimate == "nugget") & paramDefaults["nugget"] == lowerDefaults["nugget"]) { paramDefaults["nugget"] = min(c(0.5, upperDefaults["nugget"])) } startingParam = paramDefaults[paramToEstimate] names(startingParam) = paramToEstimate naStarting = is.na(startingParam) startingParam[naStarting] = paramDefaults[names(startingParam)[naStarting]] moreParams = paramDefaults[!names(paramDefaults) %in% paramToEstimate] allParams = c(startingParam, moreParams) allParams = fillParam(allParams) paramsForC = allParams[c("nugget", "variance", "range", "shape", "anisoRatio", "anisoAngleRadians", "boxcox")] Sparam = names(paramsForC) %in% paramToEstimate names(Sparam) = names(paramsForC) paramToEstimate = names(Sparam)[Sparam] parOptions = cbind(lower = lowerDefaults[paramToEstimate], upper = upperDefaults[paramToEstimate], parscale = parscaleDefaults[paramToEstimate], ndeps = ndepsDefault[paramToEstimate]) forO = list(scalarF = c(fnscale = -1, abstol = -1, reltol = -1, alpha = -1, beta = -1, gamma = -1, factr = 1e+06, pgtol = 0), scalarInt = c(trace = 0, maxit = 200, REPORT = 1, type = -1, lmm = 25, tmax = -1, temp = -1), pars = parOptions[, c("lower", "upper", "parscale", "ndeps"), drop = FALSE]) if (verbose) { forO$scalarInt["trace"] = 6 forO$scalarInt["REPORT"] = 200 } forO$parsInt = rep(0, nrow(forO$pars)) names(forO$parsInt) = rownames(forO$pars) forO$parsInt[forO$pars[, "lower"] != -Inf & forO$pars[, "upper"] != Inf] = 2 forO$parsInt[forO$pars[, "lower"] != -Inf & forO$pars[, "upper"] == Inf] = 1 forO$parsInt[forO$pars[, "lower"] == -Inf & forO$pars[, "upper"] != Inf] = 3 forOparsOrig = forO$pars forO$pars[!is.finite(forO$pars)] = -1 forO$pars = c(forO$pars, rep(0, ncol(covariates) + ncol(covariates)^2)) if (aniso) { xcoord = crds(coordinates)[, 1] ycoord = crds(coordinates)[, 2] } else { xcoord = as.vector(coordinates) ycoord = -99 } obsCov = cbind(y1 = observations, y2 = 0, y3 = 0, covariates) if (all(paramToEstimate == "variance") & param["nugget"] == 0) { theL = loglikLgm(param, data = observations, formula = covariates, coordinates = coordinates, reml = reml) fromOptim = attributes(theL) result = list(optim = list(mle = fillParam(fromOptim$param), logL = c(m2logL = as.numeric(theL), logL = -as.numeric(theL)/2), totalVarHat = fromOptim$totalVarHat, message = "numerical optimization not needed", options = NULL, detail = NULL), betaHat = fromOptim$betaHat, varBetaHat = fromOptim$varBetaHat) } else { fromOptim = .C(C_maternLogLOpt, start = as.double(paramsForC), Sparam = as.integer(Sparam), obsCov = as.double(as.matrix(obsCov)), as.double(xcoord), as.double(ycoord), as.integer(aniso), N = as.integer(c(nrow(obsCov), 3, ncol(covariates))), Ltype = as.integer(reml + 2 * !estimateVariance), optInt = as.integer(forO$scalarInt), optF = as.double(forO$scalarF), betas = as.double(forO$pars), limType = as.integer(forO$parsInt), message = format(" ", width = 80)) names(fromOptim$start) = names(paramsForC) if (fromOptim$start["anisoRatio"] < 1) { fromOptim$start["anisoRatio"] <- 1/fromOptim$start["anisoRatio"] if (fromOptim$start["anisoAngleRadians"] + pi/2 >= pi/2) { fromOptim$start["anisoAngleRadians"] <- fromOptim$start["anisoAngleRadians"] - pi/2 } else { fromOptim$start["anisoAngleRadians"] <- fromOptim$start["anisoAngleRadians"] + pi/2 } } result = list(optim = list(mle = fromOptim$start, logL = c(m2logL = fromOptim$optF[1], logL = -fromOptim$optF[1]/2), totalVarHat = fromOptim$optF[2], boxcox = fromOptim$optF[3:5], determinants = fromOptim$optF[6:7], message = fromOptim$message, options = cbind(start = paramsForC[Sparam], opt = fromOptim$start[Sparam], parOptions[, c("parscale", "lower", "upper", "ndeps")]), detail = fromOptim$optInt[1:3]), betaHat = fromOptim$betas[1:ncol(covariates)], varBetaHat = new("dsyMatrix", Dim = as.integer(rep(ncol(covariates), 2)), uplo = "L", x = fromOptim$betas[seq(1 + ncol(covariates), len = ncol(covariates)^2)])) result$optim$options = cbind(result$optim$options, gradient = fromOptim$betas[seq(ncol(covariates)^2 + ncol(covariates) + 1, len = sum(Sparam))]) names(result$optim$detail) = c("fail", "fncount", "grcount") names(result$betaHat) = colnames(covariates) dimnames(result$varBetaHat) = list(names(result$betaHat), names(result$betaHat)) } result$parameters = fillParam(c(result$optim$mle, result$betaHat)) if (estimateVariance) { result$parameters[c("nugget", "variance")] = result$parameters[c("nugget", "variance")] * result$optim$totalVarHat result$varBetaHat = result$varBetaHat * result$optim$totalVarHat } names(result$optim$logL) = paste(names(result$optim$logL), c(".ml", ".reml")[reml + 1], sep = "") result$data = cbind(data.frame(observations = observations, fitted = covariates %*% result$parameters[colnames(covariates)]), data.frame(data)[noNA, ]) if (abs(result$parameters["boxcox"] - 1) > 1e-04) { if (abs(result$parameters["boxcox"]) < 0.001) { result$data$obsBC = log(observations) } else { result$data$obsBC <- ((observations^result$parameters["boxcox"]) - 1)/result$parameters["boxcox"] } } else { result$data$obsBC <- obsCov[, 1] } result$data$resid = result$data$obsBC - result$data$fitted if (length(grep("^SpatVector", class(coordinatesOrig)))) { forDf = rep(NA, length(noNA)) forDf[noNA] = seq(1, sum(noNA)) theDf = result$data[forDf, ] result$data = vect(x = crds(coordinatesOrig), atts = theDf, crs = crs(coordinatesOrig)) } result$model = list(reml = reml, baseline = theFactors) if (any(class(trend) == "formula")) { result$model$formula = trend result$data[[all.vars(formula)[1]]] = result$data$observations } else { result$model$formula = names(trend) } if (length(result$model$baseline)) { rparams = result$parameters baseParams = data.frame(var = names(result$model$baseline), base = result$model$baseline, pasted = paste(names(result$model$baseline), result$model$baseline, sep = "")) for (D in which(!baseParams$pasted %in% names(rparams))) { sameFac = grep(paste("^", baseParams[D, "var"], sep = ""), names(rparams)) pseq = 1:length(rparams) if (length(sameFac)) { minFac = min(sameFac) toAdd = 0 names(toAdd) = baseParams[D, "pasted"] rparams = c(rparams[pseq < minFac], toAdd, rparams[pseq >= minFac]) } } result$parameters = rparams } parameterTable = data.frame(estimate = result$parameters) rownames(parameterTable) = names(result$parameters) parameterTable$stdErr = NA stdErr = sqrt(Matrix::diag(result$varBetaHat)) parameterTable[rownames(result$varBetaHat), "stdErr"] = stdErr thelims = c(0.005, 0.025, 0.05, 0.1) thelims = c(rbind(thelims, 1 - thelims)) theQ = qnorm(thelims) toadd = outer(parameterTable$stdErr, theQ) toadd = toadd + matrix(parameterTable$estimate, ncol = length(thelims), nrow = dim(parameterTable)[1]) colnames(toadd) = paste("ci", thelims, sep = "") parameterTable = cbind(parameterTable, toadd) parameterTable[, "pval"] = pchisq(parameterTable$estimate^2/parameterTable$stdErr^2, df = 1, lower.tail = FALSE) parameterTable[, "Estimated"] = FALSE parameterTable[paramToEstimate, "Estimated"] = TRUE parameterTable[rownames(result$varBetaHat), "Estimated"] = TRUE if (estimateVariance) parameterTable["variance", "Estimated"] = TRUE rownames(parameterTable) = gsub("^variance$", "sdSpatial", rownames(parameterTable)) rownames(parameterTable) = gsub("^nugget$", "sdNugget", rownames(parameterTable)) parameterTable[c("sdSpatial", "sdNugget"), "estimate"] = sqrt(parameterTable[c("sdSpatial", "sdNugget"), "estimate"]) result$summary = as.data.frame(parameterTable) result$summary$Estimated = as.logical(result$summary$Estimated) result})(param = dots[[1L]][[1L]], data = new("SpatVector", pntr = new("Rcpp_SpatVector", .xData = <environment>)), formula = rain ~ elev, paramToEstimate = c("variance", "anisoRatio", "anisoAngleRadians"), reml = FALSE, coordinates = new("SpatVector", pntr = new("Rcpp_SpatVector", .xData = <environment>)))
2: .mapply(FUN, dots, MoreArgs)
3: FUN(X[[i]], ...)
4: lapply(X = S, FUN = FUN, ...)
5: doTryCatch(return(expr), name, parentenv, handler)
6: tryCatchOne(expr, names, parentenv, handlers[[1L]])
7: tryCatchList(expr, classes, parentenv, handlers)
8: tryCatch(expr, error = function(e) { call <- conditionCall(e) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) call <- sys.call(-4L) dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") if (w > LONG) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : " msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if (!silent && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))})
9: try(lapply(X = S, FUN = FUN, ...), silent = TRUE)
10: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE))
11: FUN(X[[i]], ...)
12: lapply(seq_len(cores), inner.do)
13: mclapply(seq_len(n), do_one, mc.preschedule = mc.preschedule, mc.set.seed = mc.set.seed, mc.silent = mc.silent, mc.cores = mc.cores, mc.cleanup = mc.cleanup, affinity.list = affinity.list)
14: parallel::mcmapply(likfitLgm, param = parList, MoreArgs = list(data = fit$data, formula = fit$model$formula, paramToEstimate = reEstimate, reml = fit$model$reml, coordinates = fit$data), mc.cores = mc.cores, SIMPLIFY = FALSE)
15: profLlgm(swissFit, mc.cores = Ncores, range = seq(15000, 55000, len = 12))
An irrecoverable exception occurred. R is aborting now ...
Error in resL[grep("^m2logL", rownames(resL)), ] :
incorrect number of dimensions
Calls: profLlgm
In addition: Warning message:
In mclapply(seq_len(n), do_one, mc.preschedule = mc.preschedule, :
scheduled cores 1, 2 did not deliver results, all values of the jobs will be affected
Execution halted
Flavor: r-devel-macos-arm64
Version: 2.0.8
Check: package dependencies
Result: NOTE
Package suggested but not available for checking: ‘RandomFields’
Package which this enhances but not available for checking: ‘INLA’
Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64
Version: 2.0.8
Check: package dependencies
Result: NOTE
Package suggested but not available for checking: 'RandomFields'
Flavor: r-oldrel-windows-x86_64
Current CRAN status: OK: 14
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.