生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

318

主题
发表于 2022-7-5 16:00:45 | 查看: 1210| 回复: 0
一、软件介绍
        datamash 是 data 和 mash 的组合词语,data 是数据,mash 捣碎和调情的意思,这里边应该翻译捣碎更加贴切。它是一个 GNU 工具,和 Linux 一些基础命令类似,所以可以使用 yum或者 apt 直接安装。这样就可以在命令行中对数据进行各种处理了。那么通常都对数据要做哪些处理呢,最基础的当然就是四则运算:加减乘除,在稍微复杂点就是各种乘方开方取余操作,还有各种统计检验函数,更加复杂的就是分组计算以及数据透视等。可以将其看成一个命令行版本的 R 软件。
        官网:https://www.gnu.org/software/datamash/
        直接使用 apt 或者 yum 工具安装即可。如果不是管理员,可以使用 conda 安装更加方便。
  1. #conda 安装
  2. conda install -y datamash
复制代码

二、使用案例
  1. # 1 计算1-10的和与平均值
  2. seq 10 | datamash sum 1 mean 1

  3. #2 将数据进行转置
  4. seq 10 | paste - - | datamash transpose
  5. seq 10 | paste - - -  | datamash transpose

  6. #3 按列计算,使用不同的语法
  7. seq 100 | paste - - - - | datamash sum 1 sum 2 sum 3 sum 4
  8. seq 100 | paste - - - - | datamash sum 1,2,3,4
  9. seq 100 | paste - - - - | datamash sum 1-4
  10. seq 100 | paste - - - - | datamash sum 1-3,4

  11. #4 调整分隔符
  12. seq 10 | xargs -n 5 |datamash -W sum 2

  13. #5 分组计算频数,根据第二列进行分组。如果计算其他值,只需更换函数就行
  14. cat scores.txt | datamash  groupby 2 count 2

  15. #6 根据第二列进行分组,计算第三列的最大值和最小值
  16. cat scores.txt  | datamash --sort groupby 2 min 3 max 3

  17. #6 输出表头
  18. cat scores.txt | datamash --header-out groupby 2 min  3 max 3

  19. #7 跳过第一行表头
  20. cat scores_h.txt | datamash  groupby 2 min  3 max 3
  21. cat scores_h.txt | datamash  --header-in groupby 2 mean 3

  22. #8 使用列名代替列号,设置小数位点
  23. cat scores_h.txt  |  datamash --headers groupby Major mean Score -R 2

  24. #9 计算频数
  25. cat genes_h.txt | datamash -s -g 3 count 3

  26. #10 就算特异的频数
  27. cat genes_h.txt | datamash -s -g 3 countunique 2
复制代码

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-11-23 21:36 , Processed in 0.099218 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表