前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言操作otu丰度表:分行列计算平均和标准差

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

作者头像
用户7010445
发布2021-10-13 11:45:29
2.6K0
发布2021-10-13 11:45:29
举报
文章被收录于专栏:小明的数据分析笔记本

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

image.png

他想算的问题是

image.png

我的理解如下

image.png

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

image.png

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

image.png

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

image.png

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

代码如下

代码语言:javascript
复制
library(readxl)
library(tidyverse)

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

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

image.png

读取数据

代码语言:javascript
复制
read_excel("example.xlsx") %>% 
  column_to_rownames("sample") -> df
dim(df)
df

image.png

按照行求平均值和标准差

代码语言:javascript
复制
sample_mean<-apply(df,1,mean)
sample_sd<-apply(df,1,sd)

自定义函数求下面的公式

image.png

代码语言:javascript
复制
myfun<-function(x,y,z){
  return(abs(x-y)/z)
}

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

image.png

计算最后的avd

代码语言:javascript
复制
apply(newdf,1,sum)/(ncol(df)*nrow(df))  -> avd
avd

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

欢迎大家关注我的公众号

小明的数据分析笔记本

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 他想算的问题是
  • 我的理解如下
  • 代码如下
  • 按照行求平均值和标准差
  • 自定义函数求下面的公式
  • 计算最后的avd
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档