diff --git a/R/zzz.R b/R/zzz.R index 267c27f861d3d3d68a9200de15352a2fb95204d0..f198746362c9dc6876d3b98a722c38696cae5d20 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -382,6 +382,16 @@ find_ufd_value <- function(undefined_file_dims, dat, i, replace_values, depending_dims <- names(depending_file_dims)[which(sapply(depending_file_dims, function(x) u_file_dim %in% x))] replace_values[depending_dims] <- rep('*', length(depending_dims)) } + # If u_file_dim depends on the same depended dimension as another depending + # dimension, then the value of the depending dim should be replaced with '*' + # to avoid only the first value being used, which can result in the wrong + # path specification. + other_depending_file_dims <- depending_file_dims[-which(names(depending_file_dims) == u_file_dim)] + if (length(depending_file_dims) > 1 && + any(unlist(other_depending_file_dims) == depended_dim)) { + depending_dims <- names(other_depending_file_dims)[which(other_depending_file_dims == depended_dim)] + replace_values[depending_dims] <- rep('*', length(depending_dims)) + } for (j in 1:length(depended_dim_values)) { parsed_values <- c() if (!is.null(depended_dim)) {