diff --git a/R/SESraster.R b/R/SESraster.R index 72ac8a8..be5ac22 100644 --- a/R/SESraster.R +++ b/R/SESraster.R @@ -187,9 +187,9 @@ SESraster <- function(x, rast.rand <- terra::rast(rast.rand) # transform a list into a SpatRaster ## vector to store results - resu <- stats::setNames(as.double(rep(NA, 8)), + resu <- stats::setNames(as.double(rep(NA, 6)), c("Observed","Null_Mean", "Null_SD", "SES", - "co_lower", "co_upper", "p_lower", "p_upper")) + "p_lower", "p_upper")) ## SES for multiple layers ses <- terra::rast(lapply(seq_len(nrow(rcomb)), @@ -205,14 +205,12 @@ SESraster <- function(x, nm <- mean(x[-1], na.rm=TRUE) ### Randomized mean value nsd <- stats::sd(x[-1], na.rm=TRUE) ### Randomized stdev value - co_lower <- sum((x[1] < x[-1]), na.rm = T) #Count of times observed value was lower than random values - co_upper <- sum((x[1] > x[-1]), na.rm = T) # Count of times observed value was higher than random values - p_lower <- co_lower / aleats # Calculate p-value for lower tail - p_upper <- co_upper / aleats # Calculate p-value for upper tail + p_lower <- sum((x[1] < x[-1]), na.rm = T)/aleats # Count of times observed value was lower than random values and calculate p-value + p_upper <- sum((x[1] > x[-1]), na.rm = T)/aleats # Count of times observed value was higher than random values and calculate p-value resu[] <- c(x[1], nm, nsd, ifelse(nsd==0, (x[1]-nm), (x[1]-nm)/nsd), - co_lower, co_upper, p_lower, p_upper) + p_lower, p_upper) return(resu) @@ -224,7 +222,7 @@ SESraster <- function(x, }, ro = rast.obs, rr = rast.rand, rcomb = rcomb, resu = resu, mi = mi, - cores = cores, aleats, temp.filename = temp.filename, + cores = cores, aleats = aleats, temp.filename = temp.filename, overwrite = overwrite, ...)) if(filename != ""){ diff --git a/tests/testthat/test-SESraster.R b/tests/testthat/test-SESraster.R index 03d0074..5d6f811 100644 --- a/tests/testthat/test-SESraster.R +++ b/tests/testthat/test-SESraster.R @@ -10,15 +10,15 @@ test_that("SES works", { # test ses by species ses <- SESraster(r, FUN=appmean, spat_alg = "bootspat_naive", spat_alg_args=list(random="species"), aleats = aleats) - nms <- paste0(c("Observed", "Null_Mean", "Null_SD", "SES", "co_lower", "co_upper", "p_lower", "p_upper"), ".mean") + nms <- paste0(c("Observed", "Null_Mean", "Null_SD", "SES", "p_lower", "p_upper"), ".mean") expect_true(inherits(ses, "SpatRaster"), "TRUE") expect_true(terra::nlyr(ses) == length(nms)) expect_named(ses, nms) - expect_equal(unlist(ses[1]), setNames(as.double(rep(c(NA, 0), each=terra::nlyr(ses)/2)), nms)) + expect_equal(unlist(ses[1]), setNames(as.double(rep(c(NA, 0), c(4, 2))), nms)) - expect_equal(unlist(ses[2]), setNames(c(0, 0.4, 0.11952286, -3.34664011, 5, 0, 1, 0), nms)) + expect_equal(unlist(ses[2]), setNames(c(0, 0.4, 0.11952286, -3.34664011, 1, 0), nms)) expect_equal(round(sd(terra::values(ses[[2]]), na.rm = TRUE), 3), as.double(0.081)) # test spat variation @@ -31,7 +31,7 @@ test_that("SES works", { expect_true(terra::nlyr(ses) == length(nms)) expect_named(ses, nms) - expect_equal(unlist(ses[1]), setNames(as.double(rep(c(NA, 0), each=terra::nlyr(ses)/2)), nms)) + expect_equal(unlist(ses[1]), setNames(as.double(rep(c(NA, 0), c(4, 2))), nms)) expect_equal(unlist(ses[2]), setNames(rep(0, length(nms)), nms)) @@ -46,7 +46,7 @@ test_that("SES works", { expect_true(terra::nlyr(ses) == length(nms)) expect_named(ses, nms) - expect_equal(unlist(ses[1]), setNames(as.double(rep(c(NA, 0), each=terra::nlyr(ses)/2)), nms)) + expect_equal(unlist(ses[1]), setNames(as.double(rep(c(NA, 0), c(4, 2))), nms)) ## example with 'vec_alg' appsv <- function(x, lyrv, na.rm=T, ...){ @@ -63,8 +63,8 @@ test_that("SES works", { aleats = aleats, filename = paste0(tempfile(),"ses.tif")) # names(ses) - nms <- paste0(c("Observed", "Null_Mean", "Null_SD" ,"SES", "co_lower", "co_upper", "p_lower", "p_upper"), ".", n2) - expect_equal(unlist(ses[1]), setNames(as.double(rep(c(NA, 0), each=terra::nlyr(ses)/2)), nms)) + nms <- paste0(c("Observed", "Null_Mean", "Null_SD" ,"SES", "p_lower", "p_upper"), ".", n2) + expect_equal(unlist(ses[1]), setNames(as.double(rep(c(NA, 0), c(4, 2))), nms)) expect_equal(unlist(ses[2]), setNames(rep(0, length(nms)), nms))