Bonjour,

J'ai une question concernant des permuations sur un tableau de données avec des sites et des indices de Pielou.

Mes données de base sont les suivantes:

J'ai en ligne les 44 noms de mes campagnes de pêche.

Chaque campagne a en colonnes entre 1 à 8 stations, avec en valeurs les indices de Pielou sur mes abondances d'espèces.
Les campagnes qui ont moins de 8 stations, ont la valeur de NA.

Mon objectif final est d'évaluer l'effort d'échantillonnage optimal.

Je souhaite donc pour chaque campagne faire des permutations entre leurs stations avec en résultat final la moyenne de ces permutations.
Après cela, je souhaite obtenir une courbe lisse des moyennes des permutations avec en x les nombres de stations et en y les indices de Pielou (entre 0 et 1).

J'ai fait tout cela avec la richesse spécifique avec la fonction suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
spec_acum=specaccum(toto, method= "random", permutations= 1000)
 
spec_acum<-with(spec_acum, data.frame(sites, richness, sd))
J'ai ajusté un modèle de Michaelis-Menten aussi pour les NA, mais cela ne sera pas nécessaire pour les Pielous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
nlsfit <- try(nls(richness ~ Vm * sites/(Ks + sites), data = spec_acum, start = list(Ks = 2,Vm = 10),control=nls.control(minFactor=1/4096, maxiter = 500)))
Si j'ai bien compris, pour "permutation=1000", cette fonction "specaccum" tire elle-même d'abord 1000 * les stations 2 par deux, puis mille fois les stations 3 par 3, puis 4 par 4 jusqu'à 8 par 8 et fait la moyenne par la suite.

Comme cette fonction est pour la richesse spécifique, elle n'est pas adaptée pour mes valeurs de Pielou.
Elle m'indique le message d'erreur suivant:
Error in colSums(x) : 'x' must be numeric
J'ai donc testé avec les fonctions "boot" et "boostrap", sauf que 9a ne fait pas les permuTations en ligne (par campagne) et ne prend pas automatiquement les stations par 2, par 3 etc.

Savez-vous quelle fonction serait adaptée à mon cas ?

Je ne sais pas si ma question est claire, je m'excuse si cela n'est pas le cas.

Merci d'avance pour votre aide !