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