[R] Population growthrate with Euler-Lotka

Simon Blomberg s.blomberg1 at uq.edu.au
Mon Jun 30 12:41:34 CEST 2014


Your script is failing at the first hurdle because you data are not being imported properly. You should include

header=TRUE. sep=";"

In the call to read.table.

Cheers.

Simon.

Sent from my iPhone

Sent from my iPhone
> On 30 Jun 2014, at 7:10 pm, "Mark Christjani" <m_christjani at gmx.de> wrote:
> 
> 
>   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
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list