1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
|
library(popbio)
library(dplyr)
rm(list=ls())
data<-read.table("DESL.txt",header=T)
germin <- read.table("germination.txt",h=T)
germ <- germin[,"desl"]
create.matrix <- function(data,germ) {
matrices <- list()
for (year in c(2001:2017)) {
i.year <- year - 2000
data1 = data[, c(i.year,i.year+1)]
#Survie germination
sgt <- data1[which(data1[,1] == 2),] # fait la meme chose que sgt=filter(data1, X2003 == 2) mais sans besoin de spécifier le nom de la colonne
sgt1 <- sgt[which(sgt[,2] == 3),]
# sgt0=filter(data1, X2003 == 2)
# sgt10=filter(sgt,X2004 == 3)
# all(sgt==sgt0)
# all(sgt1==sgt10)
#Survie juvénile
sjt <- data1[which(data1[,1] == 3),]
sjt1 <- sjt[which(sjt[,2] == 3),]
sjt11 <- sjt[which(sjt[,2] == 5),]
sjtDeath <- sjt[which(sjt[,2] == 6),]
# sjt0=filter(data1, X2003 == 3)
# sjt10=filter(sjt,X2004 == 3)
# sjt110=filter(sjt,X2004 == 5)
# sjtDeath0=filter(sjt,X2004 == 6)
#Survie adule non fleuri
sant <- data1[which(data1[,1] == 4),]
sant1 <- sant[which(sant[,2] == 4),]
sant11 <- sant[which(sant[,2] == 5),]
santDeath <- sant[which(sant[,2] == 6),]
# sant0=filter(data1, X2003 == 4)
# sant10=filter(sant0,X2004 == 4)
# sant110=filter(sant0,X2004 == 5)
# santDeath0=filter(sant0,X2004 == 6)
# all(sant == sant0)
# all(sant1 == sant10)
# all(sant11 == sant110)
# all(santDeath == santDeath0)
#Survie adulte fleuri
sat <- data1[which(data1[,1] == 5),]
sat1 <- sat[which(sat[,2] == 4),]
sat11 <- sat[which(sat[,2] == 5),]
satDeath <- sat[which(sat[,2] == 6),]
# sat0=filter(data1, X2003 == 5)
# sat10=filter(sat0,X2004 == 4)
# sat110=filter(sat0,X2004 == 5)
# satDeath0=filter(sat0,X2004 == 6)
#Floraison juvénile
fjt <- data1[which(data1[,1] == 3),]
fjt1 <- fjt[which(fjt[,2] == 5),]
# fjt0=filter(data1, X2003 == 3)
# fjt10=filter(fjt,X2004 == 5)
# all(fjt == fjt0)
# all(fjt1 == fjt10)
#Floraison adulte non fleuri
fant <- data1[which(data1[,1] == 4),]
fant1 <- fant[which(fant[,2] == 5),]
# fant0=filter(data1, X2003 == 4)
# fant10=filter(fant,X2004 == 5)
# all(fant == fant0)
# all(fant1 == fant10)
#Floraison adulte fleuri
fat <- data1[which(data1[,1] == 5),]
fat1 <- fat[which(fat[,2] == 5),]
# fat0=filter(data1, X2003 == 5)
# fat10=filter(fat,X2004 == 5)
# all(fat == fat0)
# all(fat1 == fat10)
# #Fécondité
# ft=filter(data1, X2003 == 5)
# Calcul des taux de survie et des taux de fécondité
survG <- dim(sgt1)[1] / germ[i.year]
#germt1=dim(sgt1)[1]
survJ=(dim(sjt1)+dim(sjt11))/(dim(sjt1)+dim(sjt11)+dim(sjtDeath))
survJ <- survJ[1]
survV=(dim(sant1)+dim(sant11))/(dim(sant1)+dim(sant11)+dim(santDeath))
survV <- survV[1]
survR=(dim(sat1)+dim(sat11))/(dim(sat1)+dim(sat11)+dim(satDeath))
survR <- survR[1]
florJ=dim(fjt1)/(dim(sjt1)+dim(sjt11))
florJ <- florJ[1]
florV=dim(fant1)/(dim(sant1)+dim(sant11))
florV <- florV[1]
florR=dim(fat1)/(dim(sat1)+dim(sat11))
florR <- florR[1]
feco <- germ[(i.year+1)] / dim(fat)[1]
# Calcul des élements de la matrice
agr=feco
ajg=survG
ajj=survJ*(1-florJ)
arj=survJ*florJ
arr=survR*florR
arv=survV*florV
avr=survR*(1-florR)
avv=survV*(1-florV)
# Construction de la matrice
# Les deux format donnent effectivement la meme chose, garde celle qu te plait le plus
# A <- matrix(c(0,ajg,0,0,
# 0,ajj,0,arj,
# 0,0,avv,arv,
# agr,0,avr,arr),nrow=4,ncol=4)
A <- matrix(c(0,0,0,agr,
ajg,ajj,0,0,
0,0,avv,avr,
0,arj,arv,arr),4,4,byrow=T)
dimnames(A)<-list(fate=c("G","J","V","R"),state=c("G","J","V","R"))
matrices[[i.year]] <- A
names(matrices)[i.year] <- paste(year,(year+1),sep="-")
}
#remplacer les survie germinations (2001, 2002) et fécondité (2001)
matrices[[1]][1,4]<-22.5958
matrices[[1]][2,1]<-0.31105985
matrices[[2]][2,1]<-0.31105985
return(lambda(matrices[[1]]))
}
create.matrix(data,germ)
library(boot)
la=boot(data, create.matrix, 10)
la
boot.ci(la) |
Partager