[R] Population growthrate with Euler-Lotka
Mark Christjani
m_christjani at gmx.de
Mon Jun 30 09:39:45 CEST 2014
Hi everybody,
I`m Mark and I do my PhD in biology. I try using R to calculate a population
growth rate of animals grown on different types of food. Our workgroup has a
R-skript to do so, but sadly nobody, who knows how this works. I`ve never
used R before, but got some stuff figured out myself. The skript goes:
setwd("c:/Mark")
table <- read.table("r-TCO-Scene-Kontrolle.csv")
table
x <- c(table$x)
L <- c(table$lx)
m <- c(table$mx)
r.range<- c(0, 5)
eulerlotka <- function(r) sum(L * m * exp(-r * x)) - 1
res <- uniroot(f = eulerlotka, interval = r.range, tol = 1e-8)
res$root
I understood that the first 3 lines are simply to load my data and show it
in the workspace console. The next 4 lines define variables of my .csv table
for R. Thus far, everything works fine. Now comes the Euler-Lotka equation,
but somehow, this does not seem to work out as supposed. I tried to find a
solution on the internet, but I think this formula is somewhat special so I
could not find a suitible solution for my special problem. The console says:
> setwd("c:/Mark")
>
> table <- read.table("r-TCO-Scene-Kontrolle.csv")
>
> table
V1
1 x;lx;mx
2 1;1;0
3 2;1;0
4 3;1;0
5 4;1;0
6 5;1;0
7 6;1;0
8 7;1;0
9 8;1;0
10 9;1;0
11 10;1;0
12 11;0.2;3.5
>
> x <- c(table$x)
> L <- c(table$lx)
> m <- c(table$mx)
> r.range<- c(0, 5)
>
> eulerlotka <- function(r) sum(L * m * exp(-r * x)) - 1
> res <- uniroot(f = eulerlotka, interval = r.range, tol = 1e-8)
Error in uniroot(f = eulerlotka, interval = r.range, tol = 1e-08) :
f() values at end points not of opposite sign
>
> res$root
Does anybody have an idea how to get this running?
Thanks in advance
Kind regards
Mark
More information about the R-help
mailing list