diff --git a/R/ulam-function.R b/R/ulam-function.R index f743892..dc3f1a9 100644 --- a/R/ulam-function.R +++ b/R/ulam-function.R @@ -1037,7 +1037,7 @@ ulam <- function( flist , data , pars , pars_omit , start , chains=1 , cores=1 , # add by default built <- compose_distibution( left_symbol , flist[[i]] , as_log_lik=TRUE ) m_gq2 <- concat( m_gq2 , built ) - N <- symbols[[left_symbol]]$dims[[2]] + N <- symbols[[left_symbol[1]]]$dims[[2]] m_gq1 <- concat( m_gq1 , indent , "vector[" , N , "] log_lik;\n" ) # save N to attr so nobs/compare can get it later nobs_save <- N @@ -1440,7 +1440,7 @@ ulam <- function( flist , data , pars , pars_omit , start , chains=1 , cores=1 , if ( rstanout==TRUE ) stanfit <- rstan::read_stan_csv(cmdstanfit$output_files()) else - stanfit <- cmdstanfit + stanfit <- as_cmdstan_fit(cmdstanfit$output_files()) } } else { if ( cmdstan==FALSE ) { @@ -1471,7 +1471,7 @@ ulam <- function( flist , data , pars , pars_omit , start , chains=1 , cores=1 , if ( rstanout==TRUE ) stanfit <- rstan::read_stan_csv(cmdstanfit$output_files()) else - stanfit <- cmdstanfit + stanfit <- as_cmdstan_fit(cmdstanfit$output_files()) } } } else { diff --git a/R/ulam_templates.R b/R/ulam_templates.R index f9e8f07..8f00ecf 100644 --- a/R/ulam_templates.R +++ b/R/ulam_templates.R @@ -472,7 +472,9 @@ ulam_dists <- list( out <- concat( out , indent , out_var , " ~ multi_normal( " , MU_var , " , " , SIGMA , " );\n" ) } else { - out <- concat( out , indent , "log_lik = multi_normal_lpdf( " , out_var , " | " , MU_var , " , " , SIGMA , " );\n" ) + out <- concat( out , indent , "for ( j in 1:" , n_cases , " ) {\n" ) + out <- concat( out , indent , indent , "log_lik[j] = multi_normal_lpdf( " , out_var , "[j] | " , MU_var , "[j] , " , SIGMA , " );\n" ) + out <- concat( out , indent , "}\n" ) } # close local environment, if necessary