美文网首页小教程收藏
[linux]awk按照某列分组求另一列均值

[linux]awk按照某列分组求另一列均值

作者: 郑宝童 | 来源:发表于2019-07-17 17:59 被阅读31次

我这里先抛出问题,我手上有套数据:包含三列,第一列ensgid、第二列symbol,第三列fpkm值。


数据

问了老师,老师说相同的ensg对应的fpkm值,求均值。
所以针对上方数据要实现的是:根据第一列的ensgid分组,求fpkm的均值

解决代码

cat SRR192333_fpkm.txt |awk '{s[$1]+=$3;count[$1]+=1;gene[$1]=$2}END{for(i in s){print i,gene[i],s[i]/count[i]}}'>SRR192333_fpkmmean.txt

解析:

cat 文件名:读取数据
| :管道符,把|前结果输出到|后作为输入
awk:linux上与grep sed并称三神器,详细自查
$1 :指代第一列
$2 :指代第二列
> 输出符号,把前面的好结果,存到>后面的文件里


cat SRR192333_fpkm.txt:读取SRR192333_fpkm.txt文件

awk标准格式: awk{运算}END{结果输出}

  • awk '{s[$1]+=$3;count[$1]+=1;gene[$1]=$2}END{for(i in s){print i,gene[i],s[i]/count[i]}}'
  • s[$1]+=$3 相同ensg求和
  • count[$1]+=1相同ensg计数
  • gene[$1]=$2保存ensg的symbol
  • for(i in s){print i,gene[i],s[i]/count[i]}循环输出每个ensg的id,对应的symbol,以及均值
  • >SRR192333_fpkmmean.txt将print的结果存进SRR192333_fpkmmean.txt里。
    结果

看看正确性,我输出和还有计数(第3,4列):看他们的商确实和上方结果一直


结果验证

注:该代码简单修改后也可以用作计数,求和等

相关文章

  • [linux]awk按照某列分组求另一列均值

    我这里先抛出问题,我手上有套数据:包含三列,第一列ensgid、第二列symbol,第三列fpkm值。数据问了老师...

  • pandas group分组

    某列数据按照某列分组: 某列数据按照某几列分组: 所有数据按照某列分组: 按照数据类型划分列:

  • 「思维发散」R语言分组计算的N种方法

    题: 给定一个数据框,根据某个分组对另一个列进行求值。 举例: 按照年份和月份进行分组,对温度进行求均值,其中温...

  • awk集锦

    摘要 整理awk命令常用的知识点,这里会整理现成demo实例 第一列相同,第二列相加 求和 求平均值 求最大最小值...

  • 常用函数

    1.mean——均值 mean(A)求矩阵A各列的均值 mean(A)'求矩阵A各列的均值,再转置 mean(A,...

  • awk

    Linux System Environment awk功能 awk格式 awk 参数 一、awk截取列 二、显示...

  • 2020-07-03 常用有趣命令之数据处理

    第一列相同时数据整理 2.某列相同时只保留某列最大的那一行 3.最强多行变一行 4.求某列数据的标准差,方差,均值...

  • 有一列是待测变量,其他的全是分组变量

    有一个整齐的数据集,其中第一列是待处理的变量,其他的全是分组变量;目的是以其他列为分组,对第一列求均值。 1. 遇...

  • 数据类型:数值型函数有哪些

    函数 SUM(列名) 返回某列的总和 AVG(列名)返回某列的平均值 MIN(列名)返回某列的最低值 MAX(列名...

  • awk判断某列的取值、awk根据一列累加另一列

    例如: 我的输入文件(input.txt)共两列,第一列(key)存在重复行,对第二列(value)累加: aaa...

网友评论

    本文标题:[linux]awk按照某列分组求另一列均值

    本文链接:https://www.haomeiwen.com/subject/izeclctx.html