Ich habe eine Datei rRna_RDP_taxonomy_phylum mit folgenden Daten genannt:R Fehler „Summe nicht aussagekräftig für Faktoren“
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
Und ich verwende diesen Code für ein Kreisdiagramm in R zu erstellen:
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()
}
ich habe für verschiedene Datendateien diesen Code benutzen und es funktioniert gut, aber mit der Datei adobe es präsentierte Absturz die folgende Meldung Rückkehr:
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
Ich muss verstehen, warum es mit dieser Datei abstürzt und ob es irgendeinen Weg gibt, diese Art von Fehlern zu verhindern.
Danke!
'sum (Faktor (1)) reproduziert den Fehler. Aber warum haben Sie Faktoren in diesem data.frame und nicht in anderen? Wie liest du deine Daten? – agstudy
@smci Bitte verwenden Sie nicht das [Faktor] -Tag für Faktoren in R. –
@MatthewLundberg: Gotcha, wusste nicht. Ich muss eine Menge Sachen neu schreiben. Da die Factor-Sprache weniger populär ist als der R-Faktor, denke ich, dass sie das Tag [tag: factor-language] haben sollte. Ich werde dies auf Meta erheben. – smci