Bonjour,
Complètement novice sur R, j’essaie d’analyser des données de microbiote intestinal de souris en suivant les scripts fournis par une collègue.
Je veux faire une ordination en utilisant le package vegan.
J’ai deux fichiers .csv :
- Ma matrice de données se présente sous cette forme :
Echantillons 101.1 109.1 133.1 153.1 157.1
342_06w0 0 0 0 0 0.4
342_07w0 0 0 0.33 0 0.42
342_08w0 0 0 0.89 0 0.45
- Mon fichier traitement qui attribue un sexe, genotype, traitement et âge à chaque échantillon :
Echantillons Sex Genotype Treatment Week
342_06w0 F WT SAL 6
342_07w0 F WT SAL 7
342_08w0 F WT SAL 8
Le script est le suivant :
> ARISAdata<-read.csv('RelnMETHoo.csv', header=FALSE)
> ARISA.treat <-read.csv('RelnMETHoo.treat.csv',header=TRUE)
> ARISAord <-metaMDS(ARISAdata,trace=FALSE)
Error in FUN(X[[i]], ...) : only defined on a data frame with all numeric variables
De plus : Warning message: In Ops.factor(left, right) : ‘<’ not meaningful for factors
J’ai déjà remplacé les virgules par des points dans mes fichiers Excel.
D’après ce que j’ai pu lire sur différents forums, il faudrait que je définisse les différentes conditions de mon fichier traitement comme des facteurs.
J’ai essayé :
> ARISAdata<-read.csv('RelnMETHoo.csv', header=FALSE)
> ARISA.treat <-read.csv('RelnMETHoo.treat.csv',header=TRUE)
> sex <- c("F","F","F","F”,"M”, …) J’ai beaucoup d’échantillons, je ne mets pas l’intégralité de la formule ici.
> sex <- factor(sex)
> sex
[1] F F F F M …
Levels: F M
> genotype <- c("WT","WT","WT","WT","HET","HET",…)
> genotype <- factor(genotype)
> genotype
[1] WT WT WT WT HET HET …
Levels: HET WT
> treatment <- c("SAL","SAL","SAL", "METH"…)
> treatment <- factor(treatment)
> treatment
[1] SAL SAL SAL METH METH …
Levels: METH SAL
> week <- c("6","7","8","9","10",11,…)
> week <- factor(week)
> week
[1] 6 7 8 9 10 11
> ARISAord <-metaMDS(ARISAdata,trace=FALSE)
Error in FUN(X[[i]], ...) : only defined on a data frame with all numeric variables
De plus : Warning message: In Ops.factor(left, right) : ‘<’ not meaningful for factors
J’ai donc toujours le même message au final.
J’ai vu sur ce forum une autre solution consistant à utiliser les fonctions as.numeric/character mais je ne suis pas sûre du script.
Quelqu’un pour m’éclairer ?
Merci d’avance.