首页 欧洲联赛 正文

Linux是一个非常简单的统计分析工具datasmash一定要看教程-betway官网_必威体育betwayAPP_betway体育

更多精彩,请点击上方蓝字重视咱们!

datamash 是什么

在官网 中,用了下面一句话来介绍 datamash。

GNU datamash is a command-line program which performs basic numeric, textual and statistical operations on input textual data files.

datamash 作为一个指令行程序能够对文本文件进行数字和文本相关的根本核算操作(虽然根本可是一切的操作都满足常用高频)。

运用前首要进行装置,能够经过 sudo apt-get install datamash 来进行装置,但apt库里软件版别有些老旧,仅为1.0.7。

或许经过源码来装置最新版别,这儿选用第二种方法。

wget https://ftp.gnu.org/gnu/datamash/datamash-1.4.tar.自宅警备员gz
tar -xzf datamash-1.4.tar.gz
cd datamash-1.4
./configure
make
make check
sudo make install

调用格局与参数

datamash 的根本调用格局如下:

datamash [option]… op1 column1  [op2 co引诱女性lumn2 …]

上面的内容转换为描绘言语便是:在 option 的参数下,对 column1 列进行 op1 操作,对 column2 列进行 op2 操作。假如运用 --group 参数,一切的 operation 都将会分组进行;假如没有运用 --group,一切的 operation 会对一切的值进行。需求阐明的是这儿的 column1 能够是表明第几列的数字,当运用 -Linux是一个十分简略的核算剖析东西datasmash必定要看教程-betway官网_必威体育betwayAPP_betway体育H 或许 --header-in 时能够是所选字段的称号,能够运用列名,当 operation 要求输入成对数据的时分运用: 衔接,比方 spearson 5:6

首要 operation

不同版别支撑的参数不同,以下参数适用于 v1.4 版别。在分组核算相关的参数中,p/s 前缀别离代表 population 或许 sample。一般来说,sample 对应的核算等同于 R 中对应函数,例如 sstdev 和 sd() 是共同的。

Primary operations:

primary operations 决议了文件将被怎么处理,假如 primary operatino 没有设置,整个文件将会被逐行处理(针对 per-line operation)或许将一切行依照一组进行处理。


操作示例

运用软件自带的测试数据集 scores_h.txt,有三列Linux是一个十分简略的核算剖析东西datasmash必定要看教程-betway官网_必威体育betwayAPP_betway体育,别离是学生名字科目和成果。

cat /usr/local/share/datamash/examples/scores_h.txt |head
Name    Major   Score
Shawn   Arts &nb盘锦sp;  65
Marques Arts    58
Fernando  &nbsLinux是一个十分简略的核算剖析东西datasmash必定要看教程-betway官网_必威体育betwayAPP_betway体育p;     Arts    78
Paul    Arts    63
Walter  Arts&神州虫新浪博客nbsp;   75
Derek   Arts    60
Nathaniel       Arts    88
Tyreque Arts    74
Trevon  Arts    74

文本根本操作

#检查队伍完整性
$ cat scores_h.txt |datamash check

84 lines, 3 fields

# 交流列次序
$ cat scores_h.txt |datamash reverse |head -n5

S大悟气候core   Major   Name
65      Arts    Shawn
58      Arts    Marques
78      Arts    Fernando
63      Arts    Paul

# 依据前两列构建透视表,且显现分数
$ cat scores_h.txt |datamash --header-in crosstab 1,2 unique 3 |head

# 由于这个文件有 header 所以需求运用 --header-in 参数
    Arts    Business        Engineering     Health-Medicine Life-Sciences   Social-Sciences
Aaron   N/A  &n阴阳眼bsp;  83      N/A     N/A     58      N/A
Allen   N/A &nb董成鹏老婆张文露sp;  达州气候预报 N/A     N/A     N/A     50      N/A
Andre   N/A     N/A     N/A     72      N/A     N/A
Angel   N/A     N/A     Linux是一个十分简略的核算剖析东西datasmash必定要看教程-betway官网_必威体育betwayAPP_betway体育;N/A     100     N/A     N/A
Anthony N/A     N/A     N/A     N/A &nG2024bsp;   32      N/A
Antonio N/A     N/A     88      N/A     N/A     N/A
Austin  N/A &钢索危情nbsp;   N/A     N/A     N/A     91      N/A
Avery   N/A     N/A     51      N/A     N/A     N/A
Brandon N/A &nbsLinux是一个十分简略的核算剖析东西datasmash必定要看教程-betway官网_必威体育betwayAPP_betway体育p;   N/A     N/A     N/A     72      N/A

分组核算操作

核算每门课的选课人数

$ datamash --header-in --sort groupby 2 count 2 < scores_h.txt
Arts    19
Business        11
Engineering     13
Health-Medicine 13
Life-Sciences   12
So乌海市乌达区打新兵cial-Sciences 15

检查每门课程的最高分和最低分,在这儿运用 --header-out 输出时会主动增加列名

$ datamash --header-in --header-out --sort groupby 2  min 3 max 3 < scores_h.txt
GroupBy(Major)  min(Score)    鸡骨草  max(Score)
Arts    4陈蓉赵健6      88
Business        79      94
Engineering     39      99
Health-Medicine 72      100
Life-Sciences   14      91
Social-Sciences 27      90

由于这是有列名的输入文件,运用 --header-in 参数后能够运用列名来进行核算。核算每门课程的平局分和标准差,在显现的成果中要求只保存两位小数即可。

$ datamash --header-in --header-out --sort -R 2 \
groupby 2  mean Score pstdev Score < scores_h.txt

Grou美观站手机站版伦理片pBy(Major)  mean(Score)     pstdev(Score)
Arts    68.95   10.14
Business        87.36   4.94
Engineering  &n嗯啊哥哥不要bsp;  66.54   19.10
Health-Medicine 90.62   8.86
Life-Sciences   55.33   19.73
Social-Sciences 60.27   16.64

假如想要对文本中的数字进行简化,能够运用如下几个指令:

$ (echo num; seq -1.25 0.25 1.25) \
|datamash --full -H round 1 ceil 1 floor 1 trunc 1 frac 1

num  &nbLinux是一个十分简略的核算剖析东西datasmash必定要看教程-betway官网_必威体育betwayAPP_betway体育sp;  round(num)      ceil(nucornm)       floor(num)      trunc(num)      frac(num)
-1.25   -1      -1      -2      -1      -0.25
-1.00   -1      -1      -1      -1      0
-0.75   -1      0       -1      0       -0.75
-0.50   -1      0       -1      0       -0.5
-0.25   0       0       -1      0       -0.25
0.00    0       0       0       0       0
0.25    0       1       0       0       0.25
0.50    1       1       0       0       0.5
0.75    1       1       0       0       0.75
1.00    1       1       1       1       0
1.25    1       2       1       1       0.25

在实践的服务器办理中,或许需求核算一些体系用户信息。这些信息存放在 /etc/passwd 中Linux是一个十分简略的核算剖析东西datasmash必定要看教程-betway官网_必威体育betwayAPP_betway体育,: 切割。这儿运用 login shells 进行分组,然后核算用户数。

$ cat /etc/passwd | datamash -t : --output-delimiter&nb黄淮学院sp;$'\t' --sort groupby 7 count 7

/bin/bash       10
/bin/false      22
/bin/sh 3
/bin/sync    &nbs蝙蝠侠漆黑骑士兴起p;  1
/usr/sbin/nologin   &nbs玄幻小说完本p;   17

END

碧茂讲堂精彩课程引荐:

1.Cloudera数据剖析课;

2.Spark和Hadoop开发员训练;

3.大数据机器学习之引荐体系;

4.Python数据剖析与机器学习实战;

详情请重视咱们大众号:碧茂大数据-课程产品-碧茂讲堂

现在注册互动得海量学币,很多精品课程免费送!


重视最新行业动态,

加群进行技术交流


相关推荐

  • 暂无相关文章