diff --git a/R/ByChunks.R b/R/ByChunks.R index 4560121408653c344affd9977021a85d2738a4ed..26d66627197af9dc8a05f274548004c1766a9406 100644 --- a/R/ByChunks.R +++ b/R/ByChunks.R @@ -5,7 +5,6 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', ecflow_server = NULL, silent = FALSE, debug = FALSE, wait = TRUE) { - # Build object to store profiling timings t_begin_total <- Sys.time() t_begin_bychunks_setup <- t_begin_total @@ -598,6 +597,9 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', names_dims_to_alter <- names(attr(start_call, 'Dimensions'))[dims_to_alter] # If any dimension comes from split dimensions split_dims <- attr(start_call, 'SplitDims') + + if (length(split_dims) != 0){ + for (k in 1:length(split_dims)) { if (any(names(split_dims[[k]]) %in% names_dims_to_alter)) { chunks_split_dims <- rep(1, length(split_dims[[k]])) @@ -615,6 +617,8 @@ ByChunks <- function(step_fun, cube_headers, ..., chunks = 'auto', } } } + } + if (length(dims_to_alter) > 0) { for (call_dim in names(attr(start_call, 'Dimensions'))[dims_to_alter]) { start_call[[call_dim]] <- chunk(chunk_indices[call_dim], chunks[[call_dim]], diff --git a/R/Utils.R b/R/Utils.R index 8626b2a015b3e5fe90fb9c3af697b7ed7595c5b0..0d2b2fde7ed7d014c4344e9f1813f219d863fe1d 100644 --- a/R/Utils.R +++ b/R/Utils.R @@ -30,7 +30,7 @@ chunk <- function(chunk, n_chunks, selectors) { if (length(chunk) != length(n_chunks)) { stop("Wrong chunk specification.") } - if (!attr(selectors, 'values')) { + if (!is.null(attr(selectors, 'values'))) { stop("Multidimensional chunking only available when selector ", "values provided.") }