很抱歉,如果这是基础知识,我是R的新手,从这里开始。
我想绘制以下数据的直方图(每个样本都有一个Shannon多样性指标,代表每个样本中物种的丰富度和丰度)。
这是我的数据,当前是一个数据帧(称为shannon_divplot
),其中一列称为,shannon_diversity
还有6个观测值。
shannon_diversity
Control1 3.309361
Control2 3.664494
Control3 3.269842
Disease1 2.572888
Disease2 1.530877
Disease3 2.357401
我想绘制一个直方图,显示每个样本的香农多样性值。然后,我希望计算一种单因素方差分析,然后进行事后Tukey测试。这是我使用的代码,奇怪的hist()
是该功能只是创建一个数据框而不是实际的图形。
hist(shannon_divplot$shannondiversity,
main="Shannon Diversity",
xlab="Samples", breaks=15)
我需要将数据框转换为此吗
Samples shannon_div
1 Control1 3.309361
2 Control2 3.664494
3 Control3 3.269842
4 Disease1 2.572888
5 Disease2 1.530877
6 Disease3 2.357401
并使用诸如
plot(shannon_div ~Samples,
data=shannon_divplot,
main="Shannon Diversity", xlab="Sample" )
?
在计算方差分析时,由于未计算p值,因此也会出错。它给了我这个;
Df Sum Sq Mean Sq
Samples 5 3.084 0.6168
aov.shannon = aov(shannon_div ~Samples, data=shannon_divplot)
summary(aov.shannon)
TukeyHSD(aov.shannon)
如果这太基础了,请再次道歉,我们将不胜感激。
编辑:如果我想比较集体控制与疾病,那么每个组会有一个以上的值,我该如何安排我的数据框或代码来做到这一点?
您想要的通常更称为条形图:“直方图”通常保留用于显示连续变量的频率分布的图。barplot()
将执行您想要的操作,而无需更改数据格式:
## input data
dd <- read.table(header=TRUE,text="
shannon_diversity
Control1 3.309361
Control2 3.664494
Control3 3.269842
Disease1 2.572888
Disease2 1.530877
Disease3 2.357401
")
barplot(dd$shannon_diversity,names.arg=rownames(dd),
ylab="Shannon diversity")
您的另一个问题比较难(这是一个统计问题,而不是编程问题)。除非您在组内进行复制,否则您不能在组之间进行ANOVA。由于每次处理您只有一个数据点,因此ANOVA不会产生p值。
如果您想比较对照与疾病(每个3个观察值):
dd$grp <- sub("[1-3]","",rownames(dd))
anova(lm(shannon_diversity ~ grp, data=dd))
(在两个方差分析中进行Tukey事后测试毫无意义[我认为Tukey事后测试仍然被滥用...])
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句