R语言操作otu丰度表:分行列计算平均和标准差

Python011

R语言操作otu丰度表:分行列计算平均和标准差,第1张

公众号的读者留言问答的问题,首先他的数据集如下

1 这个是数据集按行求平均

2 这个是数据集中按行求标准差

3 这个公式的计算方法是先按照行求平均值得到一个向量a,按行求标准差得到一个向量b,最后是按照列来进行abs(x-a)/b

4 这个公式就是把3得到的新数据集按照行求和然后再除以数据的维度

readxl 包用来读取数据

tidyverse 用来操作数据

readxl 中的 read_excle() 函数好像没有指定某一列作为行名的函数,所以我给原始数据添加一个表头

读取数据

小明的数据分析笔记本

在R下直接回车,R自动在下一行开始部位增加+,作为未完待续的标志。

无需特定符号,回车即换行比如:

x<-rnorm(100)

plot(x,x,"n",

xlab="",ylab="")

在R语言在生物信息学的实际应用中,常常需要添加p-value和显著标记。很多同学对于添加P-value这个问题一直一知半解,殊不知,不同的类型添加P-value选择的方法也是不同的。

本文将详细介绍如何通过ggpubr包为ggplot图添加p-value以及显著性标记。利用数据集ToothGrowth进行演示。

#先加载包 library(ggpubr) #加载数据集ToothGrowth data("ToothGrowth") head(ToothGrowth) ## len supp dose ## 1 4.2 VC 0.5 ## 2 11.5 VC 0.5 ## 3 7.3 VC 0.5 ## 4 5.8 VC 0.5 ## 5 6.4 VC 0.5 ## 6 10.0 VC 0.5

比较方法

R中常用的比较方法主要有下面几种:

各种比较方法后续有时间一一讲解。

添加p-value

主要利用ggpubr包中的两个函数:

compare_means():可以进行一组或多组间的比较

stat_compare_mean():自动添加p-value、显著性标记到ggplot图中

##compare_means()函数

该函数主要用用法如下:

compare_means(formula, data, method = "wilcox.test", paired = FALSE, group.by = NULL, ref.group = NULL, ...)

注释:

formula:形如x~group,其中x是数值型变量,group是因子,可以是一个或者多个

data:数据集

method:比较的方法,默认为"wilcox.test", 其他可选方法为:"t.test"、"anova"、"kruskal.test"

paired:是否要进行paired test(TRUE or FALSE)

group_by: 比较时是否要进行分组

ref.group: 是否需要指定参考组

##stat_compare_means()函数

主要用法:

stat_compare_means(mapping = NULL, comparisons = NULL hide.ns = FALSE, label = NULL, label.x = NULL, label.y = NULL, ...)

注释:

mapping:由aes()创建的一套美学映射

comparisons:指定需要进行比较以及添加p-value、显著性标记的组

hide.ns:是否要显示显著性标记ns

label:显著性标记的类型,可选项为:p.signif(显著性标记)、p.format(显示p-value)

label.x、label.y:显著性标签调整

…:其他参数

比较独立的两组

compare_means(len~supp, data=ToothGrowth)

结果解释:

.y:测试中使用的y变量

p:p-value

p.adj:调整后的p-value。默认为p.adjust.method="holm"

p.format:四舍五入后的p-value

p.signif:显著性水平

method:用于统计检验的方法

##绘制箱线图

p <- ggboxplot(ToothGrowth, x="supp", y="len", color = "supp", palette = "jco", add = "jitter")#添加p-valuep+stat_compare_means()

#使用其他统计检验方法 p+stat_compare_means(method = "t.test")

上述显著性标记可以通过label.x、label.y、hjust及vjust来调整

显著性标记可以通过aes()映射来更改:

aes(label=..p.format..)或aes(lebel=paste0("p=",..p.format..)):只显示p-value,不显示统计检验方法

aes(label=..p.signif..):仅显示显著性水平

aes(label=paste0(..method..,"\n", "p=",..p.format..)):p-value与显著性水平分行显示