MixSIAR
MixSIAR copied to clipboard
RUNTIME ERROR in jags.model: Dimension mismatch taking subset of src_tau
EDIT on 25-02-2020:
The error occurs within the function jags.model() at line 76 with the following content:
.Call("compile", p, data, as.integer(n.chains), TRUE, PACKAGE = "rjags")
The call-stack, i.e. the previously called functions, was from outer- to innermost:
run_model()
(namespace: MixSIAR)
--> jags()
(namespace: R2jags) at line 129: m <- jags.model(..)
--> jags.model()
(namespace: rjags) at line 76
The error produced is:
Error: RUNTIME ERROR:
Compilation error on line 128.
Dimension mismatch taking subset of src_tau
In order to help understand why the error in the title of this issue arises, I'll post in the following the entire printout of the variable data
passed to the .Call()
-function at line 76 in jags.model()
:
Browse[5]> data
$X_iso
d18O d2H
[1,] -0.23138769 -0.7629143
[2,] 0.36907494 0.5220980
[3,] 2.23109506 0.8888474
[4,] 1.31736517 0.9094223
[5,] 0.72734648 0.5804021
[6,] 1.43618753 0.5965004
[7,] 1.97804326 0.9713432
[8,] 1.80527634 1.0541636
[9,] 1.12016898 0.8227014
[10,] 1.33923086 1.4911130
[11,] 1.50794970 1.5626845
[12,] 1.36824564 1.0346010
[13,] 0.95125224 0.8001685
[14,] -0.06936574 0.1897425
$N
[1] 14
$n.sources
[1] 5
$n.iso
[1] 2
$alpha
[1] 1 1 1 1 1
$frac_mu
Meand18O Meand2H
10 0 0
100 0 0
20 0 0
30 0 0
50 0 0
$e
[,1] [,2] [,3] [,4]
[1,] 0.36733337 0.27597929 0.24603832 0.2311112
[2,] 0.08930489 0.27597929 0.24603832 0.2311112
[3,] 0.18112058 0.08109173 0.24603832 0.2311112
[4,] 0.18112058 0.18347484 0.07753944 0.2311112
[5,] 0.18112058 0.18347484 0.18434559 0.0755553
$cross
, , 1
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
, , 2
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
, , 3
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
, , 4
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
$tmp.p
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
$factor1_levels
[1] 14
$Factor.1
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14
$cross.fac1
, , 1
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
, , 2
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
, , 3
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
, , 4
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
$tmp.p.fac1
[,1] [,2] [,3] [,4] [,5]
[1,] NA NA NA NA NA
[2,] NA NA NA NA NA
[3,] NA NA NA NA NA
[4,] NA NA NA NA NA
[5,] NA NA NA NA NA
[6,] NA NA NA NA NA
[7,] NA NA NA NA NA
[8,] NA NA NA NA NA
[9,] NA NA NA NA NA
[10,] NA NA NA NA NA
[11,] NA NA NA NA NA
[12,] NA NA NA NA NA
[13,] NA NA NA NA NA
[14,] NA NA NA NA NA
$SOURCE_array
, , 1, 1
[,1] [,2]
[1,] -1.161052 -2.4571837
[2,] -2.438364 -2.8991670
[3,] -2.121966 -2.2763723
[4,] -1.454014 -0.6490702
[5,] -1.090741 -0.6088899
, , 2, 1
[,1] [,2]
[1,] 1.6253282 1.0840099
[2,] -0.9527321 -1.6169885
[3,] -0.5448461 -0.9142014
[4,] 0.2009499 0.5163245
[5,] -0.7612190 -0.4953863
, , 3, 1
[,1] [,2]
[1,] 0.5981347 0.2389465
[2,] -0.4637528 -0.7470032
[3,] -1.0712021 -1.5142634
[4,] -1.0069958 -0.9633253
[5,] -1.2254631 -0.8664267
, , 4, 1
[,1] [,2]
[1,] 1.177940 0.6190498
[2,] -1.762005 -1.9241490
[3,] -1.572711 -1.4118192
[4,] -1.066151 -0.4444415
[5,] -1.111158 -0.6145405
, , 5, 1
[,1] [,2]
[1,] 1.1519789 0.6695553
[2,] -1.3402676 -1.5292596
[3,] -1.5912820 -1.8554468
[4,] -1.6803072 -1.9572796
[5,] -0.7638983 -0.4121926
, , 6, 1
[,1] [,2]
[1,] 0.9178837 1.1670390
[2,] -0.3996116 -0.4887930
[3,] -0.3014417 -0.2552889
[4,] 0.3054686 0.7466414
[5,] -0.3243786 0.1640757
, , 7, 1
[,1] [,2]
[1,] 0.9060821 0.6659537
[2,] -0.1637507 -0.2488587
[3,] -0.5387485 -0.7677464
[4,] -0.9753960 -0.9006355
[5,] -0.5137177 -0.4422172
, , 8, 1
[,1] [,2]
[1,] 0.26481356 0.62748107
[2,] 0.01549215 0.06109177
[3,] -0.24304631 -0.28254412
[4,] -0.51771463 -0.27060511
[5,] -0.67763058 -0.56700405
, , 9, 1
[,1] [,2]
[1,] 1.3467628 1.656477635
[2,] 0.5511220 1.158594858
[3,] 0.1313803 -0.007816337
[4,] -0.8318192 -0.850448070
[5,] -0.6515929 -0.692135442
, , 10, 1
[,1] [,2]
[1,] 1.0966994 1.1096569
[2,] 0.6855275 1.2883121
[3,] 0.6583616 1.2460845
[4,] 0.4810927 0.8476511
[5,] -0.1616798 0.1293925
, , 11, 1
[,1] [,2]
[1,] 1.8735606 1.5479515
[2,] 0.1322143 0.2953857
[3,] -0.3605936 -0.2664597
[4,] -0.3968430 -0.2880144
[5,] -0.3108628 -0.1779787
, , 12, 1
[,1] [,2]
[1,] 0.02148258 0.311412128
[2,] 0.20132850 0.479754302
[3,] 0.17425986 0.717432811
[4,] 0.68168228 1.281153345
[5,] -0.10330847 0.001236836
, , 13, 1
[,1] [,2]
[1,] 0.3331486 0.6527828
[2,] 0.3939402 0.8558351
[3,] 0.2525536 0.3753989
[4,] 0.2654488 0.6815313
[5,] -0.1255520 0.1233318
, , 14, 1
[,1] [,2]
[1,] 0.8365498 0.6241049
[2,] 0.1444770 0.6082571
[3,] -0.1738672 -0.1673114
[4,] 0.1789177 0.1116491
[5,] -0.5033814 -0.4931657
$n.rep
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14]
[1,] 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[2,] 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[3,] 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[4,] 1 1 1 1 1 1 1 1 1 1 1 1 1 1
[5,] 1 1 1 1 1 1 1 1 1 1 1 1 1 1
$source_factor_levels
[1] 14
$frac_sig2
SDd18O SDd2H
10 0 0
100 0 0
20 0 0
30 0 0
50 0 0
START OF ORIGINAL POST (containing the entire error message output and the R-script): When running the script stated below, the following error message occurs when carrying out jags.model:
module glm loaded
Compiling model graph
Declaring variables
Resolving undeclared variables
Allocating nodes
Deleting model
Error in jags.model(model.file, data = data, inits = init.values, n.chains = n.chains, :
RUNTIME ERROR:
Compilation error on line 128.
Dimension mismatch taking subset of src_tau
Calls: run_model -> <Anonymous> -> jags.model
Execution halted
I don't know where to start nor what to do about it.
The script I used to reproduce this is posted hereafter. If you need information about my input files, I'll provide them later if necessary.
# * Import packages
library(MixSIAR)
# * Set working directory
setwd("/home/andylu/Desktop/IDAEA_CSIC/Modeling/")
# START OF CODE =================================
## ** MIXTURE / (water) CONSUMER data ** ##
# 1) Replace the system.file call with the path to your file
# BULK SOIL WATER (BW)
mix_filename <- ("Input/mixture_consumer_Xylem_Water_of_source_Bulk_Water_raw_IDAEA.csv") # (mixture) file for consumer (xylem) water isotopic data
# 2) Load the mixture/consumer data
mix <- load_mix_data(filename = mix_filename,
iso_names = c("d18O", "d2H"),
factors = "Time", # single term like: "bla", list of terms like: c("d18O","d2H")
fac_random = FALSE, # previously it was set to "fac_random=FALSE" (without quotes)
fac_nested = FALSE, # previously it was set to "FALSE" (without quotes)
cont_effects = NULL)
## ** SOURCE (water) data ** ##
# 1) Replace the system.file call with the path to your file
# BULK SOIL WATER (BW)
source_filename <- ("Input/sources_Bulk_Water_raw_IDAEA.csv") # file for the source water isotopic data
# 2) Load the source data
source <- load_source_data(filename = source_filename,
source_factors = "Time", # can only be one string, e.g. "Source", not a list, OR NULL
conc_dep = FALSE, # no concentration dependence
data_type = "raw",
mix = mix)
## ** Discrimination data ** ##
# 1) Replace the system.file call with the path to your file
# BULK SOIL WATER (BW)
discr_filename <- ("Input/discrimination_sources_Bulk_Water_raw_IDAEA.csv") # discrimination data file
# 2) Load the discrimination/TDF data
discr <- load_discr_data(filename = discr_filename, mix = mix)
## * PLOTTING * ##
# 1) Biotracer data
# plot_data(filename = "Output/Isospace_plot", plot_save_pdf = TRUE,
# plot_save_png = FALSE, mix = mix, source = source, discr = discr)
# 2) Prior
alpha_prior_val <- 1
plot_prior(alpha.prior = alpha_prior_val, source = source, plot_save_pdf = TRUE, plot_save_png = FALSE,
filename = "Output/Prior_plot")
## * JAGS - model preparation * ##
# 1) Write the JAGS model file
model_filename <- "Output/MixSIAR_model.txt" # name of the JAGS model file
# * Set error-processing *
"ERROR message: Error in write_JAGS_model(filename = model_filename, resid_err = resid_err, :
Invalid error structure. If fitting each individual
mix data point separately, must choose Process only error model (MixSIR).
Set resid_err=FALSE and process_err=TRUE."
resid_err <- FALSE
process_err <- TRUE
# Carry out writing process of JAGS-model
write_JAGS_model(filename = model_filename, resid_err = resid_err,
process_err = process_err, mix = mix, source = source) # put together the specification of the model
# 2) OPTIONAL: Define Markov-chain differently from the standards given in run_model(run=..)
run_list <- list(chainLength = 400000, burn = 200000,
thin = 30, chains = 3, calcDIC = TRUE) # used to specify the MCMC chains
## * RUN JAGS MODEL * ##
jags_1 <- run_model(run = "normal", mix = mix, source = source, discr = discr,
model_filename = model_filename, alpha.prior = alpha_prior_val,
resid_err = resid_err, process_err = process_err)