Problème pour exécuter la fonction specaccum du package vegan

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Manon Jean
Messages : 14
Enregistré le : 04 Mai 2017, 15:08

Problème pour exécuter la fonction specaccum du package vegan

Messagepar Manon Jean » 05 Mai 2017, 08:22

Bonjour,

je dispose du jeu de données suivant :

Code : Tout sélectionner

> A=read.table("Atest.txt",header=T)
> A
   A01 A02 A03 A04 A05 A08
l1   0   0   0   1   0   0
l2   0   1   0   0   0   0
l3   0   0   0   0   1   0
l4   0   0   1   1   0   0
l5   1   1   1   0   0   0


et dont le contenu est :

Code : Tout sélectionner

> dput(A)
structure(list(A01 = c(0L, 0L, 0L, 0L, 1L), A02 = c(0L, 1L, 0L,
0L, 1L), A03 = c(0L, 0L, 0L, 1L, 1L), A04 = c(1L, 0L, 0L, 1L,
0L), A05 = c(0L, 0L, 1L, 0L, 0L), A08 = c(0L, 0L, 0L, 0L, 0L)), .Names = c("A01",
"A02", "A03", "A04", "A05", "A08"), class = "data.frame", row.names = c("l1",
"l2", "l3", "l4", "l5"))


Mon jeu de données est beaucoup plus grand en réalité (3554 lignes pour 232 colonnes) mais R me renvoie la même erreur, quelle que soit la taille de mon jeu de données.

Je voudrais donc utiliser la fonction specaccum du package vegan afin d'avoir une courbe cumulée de mes espèces (A01 etc.) en fonction de mes sorties/observations (l1, l2 etc.), mais R me renvoie une erreur quand j'essaie d'appliquer la fonction.

Voici ce que j'obtiens :

Code : Tout sélectionner

> ccA<- specaccum(A)
> ccA
Species Accumulation Curve
Accumulation method: exact
Call: specaccum(comm = A)

                                       
Sites    1.0 2.000000 3.00000 4.000000 5
Richness 1.6 2.900000 3.90000 4.600000 5
sd       0.8 0.816515 0.67082 0.489898 0
> ccA2<- specaccum(ccA,"random")
Error in colSums(x) : 'x' must be numeric
>


(Après si l'erreur est résolue il me semble que mon tableau d'exemple est trop petit pour pouvoir appliquer la fonction. Je ne connais pas bien specaccum, je suis simplement ce que me dit l'aide de R.)

De ce que j'ai compris en regardant sur les forums, c'est que c'est un problème de format. Plusieurs colonnes ne sont pas au format numérique. Mais j'ai essayé de mettre en format numérique avec :

Code : Tout sélectionner

> A[,1:6]=sapply(A[,1:6],as.numeric)

R me renvoie encore et toujours la même erreur.

Ces données je les copie depuis un tableur excel avec lequel j'ai fait un tableau croisé dynamique et je les enregistre dans un bloc-notes format txt. J'ai fait la même manip (du moins j'ai l'impression) pour d'autres tableaux pour lesquels ma fonction tourne bien. J'ai essayé aussi en passant au format csv et là encore, la même erreur.

Sauriez-vous m'aider ?
Bonne journée,
Manon

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Problème pour exécuter la fonction specaccum du package vegan

Messagepar Pierre-Yves Berrard » 05 Mai 2017, 08:42

Je ne connais pas le package en question mais vous ne faites pas référence à A dans le deuxième appel (celui qui plante) :

Code : Tout sélectionner

ccA2<- specaccum(ccA,"random")

Ce ne serait pas :

Code : Tout sélectionner

ccA2<- specaccum(A,"random")
?
PY

Manon Jean
Messages : 14
Enregistré le : 04 Mai 2017, 15:08

Re: Problème pour exécuter la fonction specaccum du package vegan

Messagepar Manon Jean » 05 Mai 2017, 08:49

Ah mais oui c'est ça. J'avais juste mal lu l'exemple de l'aide et j'ai appliqué bêtement cette erreur sur tous mes tableaux.
Merci beaucoup je n'aurais pas vu cette erreur toute seule (ou alors pas avant un long moment).


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité