Hi,

I'm trying to set up R to run a simulation of two populations in which every 
3.5 days, the initial value of one of the populations is reset to 1.5. I'm 
simulation an experiment we did in which we fed Daphnia populations twice a 
week with algae, so I want the initial value of the algal population to reset 
to 1.5 twice a week to simulate that feeding. I've use for loops and if/else 
loops before but I can't figure out how to syntax "if t is in this vector of 
possible t values, do this command, else, do this command" if that makes sense. 
Here's what I have (and it doesn't work):

params = c(1, 0.15, 0.164, 1)
init = c(1.5, 0.05)
t=seq(1,60, by=0.5) #all time values, experiment ran for 60 days

#feeding sequence - every "3.5 days"
feed_days = seq(1,60,by=3.5)

Daphnia <- function(t,x,params){
        C_D = x[2];
        C_A = 0;
        for(t %in% feed_days){
                if t == TRUE {
                C_A = 1.5
                }
        else{
                C_A = 0
         }}
        gamma = params[1]; m_D = params[2]; K_q = params[3]; q_max = params[4];
        M_D = m_D * C_D
        I_A = (C_D * q_max * C_A) / (K_q + C_A)
        r_D = gamma * I_A
        return(
        list(c(
         - I_A,
        r_D - M_D
        )))
        }

library(deSolve)
results <- ode(init, t, Daphnia, params, method = "lsoda")


Let me know if there's any other info that would be helpful and thanks very 
much for your help!


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to