rstan version 2.21.2

I’m working on beast (maybe it wouldn’t be if I was better programmer?) of a model that involves serial dilutions with data that is sometimes censored. I would like to model each dilution separately based on conditions that I pass to data. For example in the model block:

```
for (n in 1:N1) {
if (dilution_plate==1) {
if (censored==0) {
target += poisson_lpmf( y[n] | 0.1 * lambda[J_1[n]] );
}
else if (censored==1) {
target += poisson_lccdf(U | lambda[J_1[n]]);
}
}
else if (dilution_plate==2) {
if (censored==0) {
target += poisson_lpmf( y[n] | 0.01 * lambda[J_1[n]] + error_1[J_1[n]] );
}
else if (censored==1) {
target += poisson_lccdf(U | 0.01 * lambda[J_1[n]] + error_1[J_1[n]] );
}
}
//.....continue on for 4 more of these nested conditional statements + 4 others with different data but you get the idea
}
```

where `dilution_plate`

is an array of integers that is an index for the dilution plate and `censored`

is a dummy variable indicating censoring. In other words, each row of data will have a value for `y`

, `dilution_plate`

, and `censored`

.

I would like to include these nested conditional statements in both the `model`

and `generated quantities`

block.

However, the above throws the following error:

I tried removing

`==`

and replacing with `=`

and that did not help. I tried declaring `dilution_plate`

and `censored`

as vectors and replacing 1 with 1.0 and 2 with 2.0, etc. That did not help. I also tried adding `if (dilution_plate[n] = 1)`

and it throws a different error. I thought adding `[n]`

would do the trick since it’s inside a for loop, but nope.
I’m sure I’m missing something obvious. I did read the manual on conditional statements… is there no way to pass a vector or array to data and for each iteration in a for loop evaluate the condition?

(for now I am using for loops and incrementing the target just to keep everything explicit as to what I am doing, so currently not looking for speed gains)

Thanks!