I am trying to plot boxplot for shannon diversity index based on two columns (SampleType and Compartment) but I am getting below error although Compartment column present in metadata file? I will be thankful for your time and help.
Could you please suggest how I can plot it with 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"))
Error
Error in stats::model.frame.default(formula = shannon ~ Compartment) : invalid type (list) for variable 'shannon'
Many thank Bioinfonext