Erreur R "somme non significative pour les facteurs"
J'ai un fichier appelé rRna_RDP_taxonomy_phylum avec les données suivantes :
364 "Firmicutes" 39.31
244 "Proteobacteria" 26.35
218 "Actinobacteria" 23.54
65 "Bacteroidetes" 7.02
22 "Fusobacteria" 2.38
6 "Thermotogae" 0.65
3 unclassified_Bacteria 0.32
2 "Spirochaetes" 0.22
1 "Tenericutes" 0.11
1 Cyanobacteria 0.11
Et je suis en utilisant ce code pour créer un graphique à secteurs dans R:
if(file.exists("rRna_RDP_taxonomy_phylum")){
family <- read.table ("rRna_RDP_taxonomy_phylum", sep="\t")
piedat <- rbind(family[1:7, ],
as.data.frame(t(c(sum(family[8:nrow(family),1]),
"Others",
sum(family[8:nrow(family),3])))))
png(file="../graph/RDP_phylum_low.png", width=600, height=550, res=75)
pie(as.numeric(piedat$V3), labels=piedat$V3, clockwise=TRUE, col=graph_col, main="More representative Phyliums")
legend("topright", legend=piedat$V2, cex=0.8, fill=graph_col)
dev.off()
png(file="../graph/RDP_phylm_high.png", width=1300, height=850, res=75)
pie(as.numeric(piedat$V3), labels=piedat$V3, clockwise=TRUE, col=graph_col, main="More representative Phyliums")
legend("topright", legend=piedat$V2, cex=0.8, fill=graph_col)
dev.off()
}
J'ai été en utilisant ce code pour les différents fichiers de données et il fonctionne très bien, mais avec le fichier présenté adobe blocage de retourner le message suivant:
Error in Summary.factor(c(6L, 2L, 1L), na.rm = FALSE) :
sum not meaningful for factors
Calls: rbind -> as.data.frame -> t -> Summary.factor
Execution halted
J'ai besoin de comprendre pourquoi il crash avec ce fichier et si il existe un moyen d'éviter ce genre d'erreurs.
Merci!
source d'informationauteur user2245731
Vous devez vous connecter pour publier un commentaire.
Vient l'erreur lorsque vous essayez d'appeler
sum(x)
etx
est un facteur.Ce que cela signifie, c'est que l'une de vos colonnes, bien qu'ils ressemblent à des numéros sont en fait des facteurs (ce que vous voyez est la représentation textuelle)
simple correction, de les convertir en numérique. Cependant, il a besoin d'un intermeidate étape de la conversion à caractère premier. Utiliser les éléments suivants: