R语言数据处理

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

2021-09-25  本文已影响0人  小明的数据分析笔记本

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

image.png

他想算的问题是

image.png

我的理解如下

image.png

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

image.png

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

image.png

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

image.png

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

代码如下

library(readxl)
library(tidyverse)

readxl包用来读取数据
tidyverse用来操作数据

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

image.png

读取数据

read_excel("example.xlsx") %>% 
  column_to_rownames("sample") -> df
dim(df)
df
image.png

按照行求平均值和标准差

sample_mean<-apply(df,1,mean)
sample_sd<-apply(df,1,sd)

自定义函数求下面的公式

image.png
myfun<-function(x,y,z){
  return(abs(x-y)/z)
}

apply(df,2, myfun,sample_mean,sample_sd) -> newdf
newdf
image.png

计算最后的avd

apply(newdf,1,sum)/(ncol(df)*nrow(df))  -> avd
avd

今天推文的示例数据和代码可以在公众号后台留言20210925获取

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

上一篇 下一篇

猜你喜欢

热点阅读