[R] sequential treatment of a vector for formula
Frostygoat
frostygoat at gmail.com
Thu May 27 00:24:16 CEST 2010
Please pardon the simplicity of this question of biological nature.
I'm trying to calculate a statistic, px, the proportion of a cohort
that survives through the interval x:x+1. I have the vector from
which the calc is to be made but I can't figure out how to tell R to
take the current value and divide it by the next value.
The formula is P0=L1/LO
The following is an example of the lifetable I'm constructing:
example=as.vector(c(8,2,1,5,6,7,7,0,8,10,13,8,11,11,11,2,7,1,5,6,8,6))
#prime
k=1
#Deaths#
deaths=numeric(k)
for(k in 0:max(example))
{
deaths[k]=sum(example==k)}
#adjust for no zero!!#
deaths=c(0,deaths)
#Alive, Kx#
alive=sum(deaths)-cumsum(deaths)
#Day, or age class,x#
day=seq(from=0,to=length(deaths)-1)
#mortality, lx#
lx=alive/sum(deaths)
#proportion surviving to next interval, px#
#####Here's where I'm having trouble!!###
p=1
px=numeric(p)
for(p in 0:length(lx))
{
px[p]=lx/lx}
#create data frame#
iC=data.frame("x"=day,"Kx"=alive,"Dx"=deaths,"Lx"=lx,"Px"=px)
print(iC)
Thanks for any suggestions!
More information about the R-help
mailing list