|
发表于 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 安装更加方便。
- #conda 安装
- conda install -y datamash
复制代码
二、使用案例
- # 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
复制代码
|
|