R语言操作otu丰度表:分行列计算平均和标准差
2021-09-25 本文已影响0人
小明的数据分析笔记本
公众号的读者留言问答的问题,首先他的数据集如下

他想算的问题是

我的理解如下

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

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

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

4 这个公式就是把3得到的新数据集按照行求和然后再除以数据的维度
代码如下
library(readxl)
library(tidyverse)
readxl
包用来读取数据
tidyverse
用来操作数据
readxl
中的read_excle()
函数好像没有指定某一列作为行名的函数,所以我给原始数据添加一个表头

读取数据
read_excel("example.xlsx") %>%
column_to_rownames("sample") -> df
dim(df)
df

按照行求平均值和标准差
sample_mean<-apply(df,1,mean)
sample_sd<-apply(df,1,sd)
自定义函数求下面的公式

myfun<-function(x,y,z){
return(abs(x-y)/z)
}
apply(df,2, myfun,sample_mean,sample_sd) -> newdf
newdf

计算最后的avd
apply(newdf,1,sum)/(ncol(df)*nrow(df)) -> avd
avd
今天推文的示例数据和代码可以在公众号后台留言20210925获取
欢迎大家关注我的公众号
小明的数据分析笔记本
小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!