次のデータを含むrRna_RDP_taxonomy_phylumというファイルがあります。
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
そして、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()
}
私はさまざまなデータファイルにこのコードを使用してきましたが、正常に動作しますが、Adobeに提示されたファイルでは、クラッシュして次のメッセージが返されます。
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
このファイルでクラッシュする理由と、この種のエラーを防ぐ方法があるかどうかを理解する必要があります。
ありがとう!
エラーは、sum(x)
を呼び出そうとしたときに発生し、x
が要因です。
つまり、列の1つですが、実際には数字が要素のように見えます(表示されているのはテキスト表現です)
簡単な修正、数値に変換します。ただし、最初に文字に変換する中間ステップが必要です。以下を使用してください。
family[, 1] <- as.numeric(as.character( family[, 1] ))
family[, 3] <- as.numeric(as.character( family[, 3] ))
中間as.character
ステップが必要です。次の質問を見てください。 情報を失うことなく係数を整数に変換する方法?