I am trying to change a variable in a function but even tho the function is producing the right values, when I go to use them in the next sections, R is still using the initial values.
I created a function to update my variables NetN and NetC:
Reproduction=function(NetN,NetC,cnrep=20){ if(NetC/NetN<=cnrep) { DeltaC=NetC*p; DeltaN=DeltaC/cnrep; Crep=Crep+DeltaC; Nrep=Nrep+DeltaN; Brep=(Nrep*14+Crep*12)*2/1e6; NetN=NetN-DeltaN; #/* Update N, C values */ NetC=NetC*(1-p) print ("'Using C to allocate'") } else { print("Using N to allocate"); DeltaN=NetN*p; DeltaC=DeltaN*cnrep; Nrep=Nrep+DeltaN; Crep=Crep+DeltaC; Brep=(Nrep*14+Crep*12)*2/1e6; NetN=NetN*(1-p); NetC=NetC-DeltaC; } } return(c(NetC=NetC,NetN=NetN,NewB=NewB,Crep=Crep,Nrep=Nrep,Brep=Brep))}
When I use my function by say doing:
Reproduction(NetN=1.07149,NetC=0.0922349,cnrep=20)
I get the desired result printed out which includes:
NetC=7.378792e-02
However, when I go to use NetC in the next section of my code, R is still using NetC=0.0922349.
Can I make R update NetC without having to define a new variable?