Saya mencoba memplot boxplot untuk indeks keragaman shannon berdasarkan dua kolom (SampleType dan Kompartemen) tetapi saya mendapatkan kesalahan di bawah ini meskipun kolom Kompartemen ada dalam file metadata? Saya akan berterima kasih atas waktu dan bantuan Anda.

Bisakah Anda menyarankan bagaimana saya bisa memplotnya dengan ggplot2?

design <-read.delim("metadata.txt", sep="\t", header=TRUE)

                  X Treatment Compartment   Villages   Region Season
1 Root-10.S75.L001        T1        Root     Matura Rajshahi    Dry
2       Root.11.S5        T1        Root   Gullapur Rajshahi    Dry
3      Root.12.S16        T1        Root  Maidaipur Rajshahi    Dry
4  Root-13.S5.L001        T1        Root      Gokul Rajshahi    Dry
5 Root-14.S16.L001        T1        Root       Jiol Rajshahi    Dry
6      Root.15.S26        T1        Root Samastipur Rajshahi    Dry
    SampleType
1 Rajshahi.Dry
2 Rajshahi.Dry
3 Rajshahi.Dry
4 Rajshahi.Dry
5 Rajshahi.Dry
6 Rajshahi.Dry


rownames(design) <-design[,1]
dim(design)
design
shannon <- read.delim("16s.shannon.txt",sep = "\t", row.names=1, header=T, blank.lines.skip = FALSE)
colnames(shannon)
dim(shannon)
shannon_info <- cbind(design,shannon)
design <-read.delim("metadata.txt", sep="\t", header=TRUE)
rownames(desgin) <-design[,1]
dim(design)
desgin
shannon <- read.delim("16s.shannon.txt",sep = "\t", row.names=1, header=T, blank.lines.skip = FALSE)
> head (shannon)
                               Shannon
PN0086A.Exp2.Root.1.S28.L001  3.078570
PN0086A.Exp2.Root.10.S32.L001 4.958543
PN0086A.Exp2.Root.13.S33.L001 5.157430
PN0086A.Exp2.Root.14.S34.L001 4.763404
PN0086A.Exp2.Root.17.S35.L001 4.418245
PN0086A.Exp2.Root.18.S36.L001 5.425252

colnames(shannon)
dim(shannon)
shannon_info <- cbind(design,shannon)
shannon_info
shannon_info$SampleType <-ordered(shannon_info$SampleType, levels=c("Mymensingh.Dry", "Mymensingh.Wet", "Rajshahi.Dry", "Rajshahi.Wet"))
#boxplot
pdf("Fig2b.16S.shannon.pdf",width=12,height=6)
with(shannon_info, boxplot(shannon ~ Compartment, xlab="Samples", ylab="Shannon Index"))

Kesalahan

Kesalahan dalam stats::model.frame.default(rumus = shannon ~ Kompartemen): tipe tidak valid (daftar) untuk variabel 'shannon'

Terima kasih banyak Bioinfonext

0
bioinfonext 30 Juni 2020, 18:29

1 menjawab

Jawaban Terbaik

Seperti yang dikomentari, Anda memiliki masalah tipografi shannon vs Shannon dan karena R peka huruf besar/kecil, keduanya adalah referensi objek yang berbeda. Selain memperbaiki nama objek yang tepat, pertimbangkan juga untuk mengonversi data Anda menjadi bingkai data alih-alih matriks untuk menggunakan argumen data dari boxplot untuk menentukan cakupan tempat variabel rumus diturunkan. Per docs< /a>:

data     sebuah data.frame (atau daftar) dari mana variabel dalam rumus seharusnya diambil.

shannon_info <- cbind.data.frame(design, shannon)
shannon_info$SampleType <- ordered(shannon_info$SampleType, levels=c("Mymensingh.Dry", "Mymensingh.Wet", "Rajshahi.Dry", "Rajshahi.Wet"))

pdf("Fig2b.16S.shannon.pdf", width=12, height=6)

boxplot(Shannon ~ Compartment, data=shannon_info, 
        xlab="Samples", ylab="Shannon Index"),
        names=levels(shannon_info$SampleType)

masukkan deskripsi gambar di sini