datamash

2022-10-25 19:28:22 浏览数 (2)

一、软件介绍

datamash 是 data 和 mash 的组合词语,data 是数据,mash 捣碎和调情的意思,这里边应该翻译捣碎更加贴切。它是一个 GNU 工具,和 Linux 一些基础命令类似,所以可以使用 yum或者 apt 直接安装。这样就可以在命令行中对数据进行各种处理了。那么通常都对数据要做哪些处理呢,最基础的当然就是四则运算:加减乘除,在稍微复杂点就是各种乘方开方取余操作,还有各种统计检验函数,更加复杂的就是分组计算以及数据透视等。可以将其看成一个命令行版本的 R 软件。

官网:https://www.gnu.org/software/datamash/

直接使用 apt 或者 yum 工具安装即可。如果不是管理员,可以使用 conda 安装更加方便。

代码语言:javascript复制
#conda 安装
conda install -y datamash

二、使用案例

代码语言:javascript复制
# 1 计算1-10的和与平均值
seq 10 | datamash sum 1 mean 1

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

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

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

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

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

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

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

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

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

#10 就算特异的频数
cat genes_h.txt | datamash -s -g 3 countunique 2

写在最后:有时间我们会努力更新的。大家互动交流可以前去论坛,地址在下面,复制去浏览器即可访问,弥补下公众号没有留言功能的缺憾。原地址暂未启用(bioinfoer.com)。

代码语言:javascript复制
sx.voiceclouds.cn

有些板块也可以预设为大家日常趣事的分享等,欢迎大家来提建议。

0 人点赞