Code : Tout sélectionner
> inf2013
COMMUNE Nomespece X5 X10 X15 X20 X25 X30
1 ANCTOVILLE-SUR-BOSCQ Pouledeau 0 0 1 0 0 0
2 ANCTOVILLE-SUR-BOSCQ Goelandargente 0 1 0 0 0 0
3 ANCTOVILLE-SUR-BOSCQ Pigeonramier 0 1 1 1 1 1
[...]
24 ANGIENS Goelandargente 0 0 0 1 1 0
25 ANGIENS Pigeoncolombin 0 0 1 0 0
etc
en voici la structure :
Code : Tout sélectionner
> str(inf2013)
'data.frame': 2886 obs. of 8 variables:
$ COMMUNE : Factor w/ 106 levels "ANCTOVILLE-SUR-BOSCQ",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Nomespece: Factor w/ 99 levels "Accenteurmouchet",..: 83 37 75 70 48 98 1 87 56 45 ...
$ X5 : int 0 0 0 1 0 0 1 1 1 1 ...
$ X10 : int 0 1 1 0 0 1 0 1 1 0 ...
$ X15 : int 1 0 1 0 0 0 0 1 1 0 ...
$ X20 : int 0 0 1 0 1 1 0 1 0 1 ...
$ X25 : int 0 0 1 0 0 0 0 0 1 1 ...
$ X30 : int 0 0 1 0 0 1 0 1 0 1 ...
A partir de ce tableau je voudrais calculer l'ICE (un estimateur de biodiversité) qui se fait avec la fonction ICE, pour chaque commune.
Mais pour exécuter la fonction il faut des tableaux avec en première colonne les espèces et les autres colonnes les unités d'échantillonnage (ici de X5 à X30).
Je n'arrive pas à savoir comment faire ma boucle pour que R me crée un tableau ICEtest avec le ICE pour chaque commune. J'ai fait ça pour l'instant :
Code : Tout sélectionner
ICEtest=data.frame(1:106,1:106)
ICEtest[,1]=levels(unique(inf2013[,1]))
for (i in 1:nrow(inf2013)){
for(j in 1:nrow(ICEtest)){
if (inf2013[i+1,1]!=inf2013[i,1])
ICE[j,2]=ICE(inf2013[i,2:8], taxa.row=T)
}}
j'ai donc créé un data.frame où mettre mes ICE calculés puis j'ai tenté deux boucles.
Evidemment ça ne marche pas.
Sauriez-vous comment me dépatouiller de ça ?
Merci,
Manon.