Describe the bug
If the data provided as a list includes a variable of type NULL, this won't be detected and the cryptic error as follows is generated:
Error in round(x) : non-numeric argument to mathematical function
(I had a bug in my own data prep code that meant NULL was being passed as a variable in the list without my awareness and because this error was so vague it took some time to track down the problem)
To Reproduce
library(cmdstanr)
file <- file.path(cmdstan_path(), "examples/bernoulli/bernoulli.stan")
mod <- cmdstan_model(file)
# data including a NULL variable
stan_data <- list(N = NULL, y = c(0,1,0,0,0,0,0,0,0,1))
# Run MCMC using the 'sample' method
fit_mcmc <- mod$sample(data = stan_data)
Expected behavior
It would be preferable if an error reported "Variable 'N' was found to be NULL - numeric value expected.' - or something along those lines.
Operating system
Mac OsX 26.2
CmdStanR version number
‘0.9.0.9000’
CmdStan version 2.37
Additional context
On some occasions (though I could not make a reprex for this), the error also included the text:
Error in round(x) : non-numeric argument to mathematical function
Called from: is_wholenumber(data[[var_name]])
I searched for is_wholenumber in CmdStanR source code and found it only once in the process_data function at line 190 in the data.R file - so I believe this line is throwing the error at least some of the time if not all.
Describe the bug
If the data provided as a list includes a variable of type NULL, this won't be detected and the cryptic error as follows is generated:
Error in round(x) : non-numeric argument to mathematical function(I had a bug in my own data prep code that meant NULL was being passed as a variable in the list without my awareness and because this error was so vague it took some time to track down the problem)
To Reproduce
Expected behavior
It would be preferable if an error reported "Variable 'N' was found to be NULL - numeric value expected.' - or something along those lines.
Operating system
Mac OsX 26.2
CmdStanR version number
‘0.9.0.9000’
CmdStan version 2.37
Additional context
On some occasions (though I could not make a reprex for this), the error also included the text:
I searched for
is_wholenumberin CmdStanR source code and found it only once in theprocess_datafunction at line 190 in the data.R file - so I believe this line is throwing the error at least some of the time if not all.