回答編集履歴
3
Update
test
CHANGED
@@ -1,17 +1,35 @@
|
|
1
|
+
Perl ではなく、GNU awk を利用する場合。
|
2
|
+
```bash
|
3
|
+
$ gawk --version
|
1
|
-
|
4
|
+
GNU Awk 5.1.0, API: 3.0 (GNU MPFR 4.1.0, GNU MP 6.2.1)
|
2
5
|
|
6
|
+
$ gawk '
|
3
|
-
|
7
|
+
NR==1{split($0, cols); next}
|
8
|
+
{for(i=1;i<length(cols);i++) tbl[cols[i] " -> " $i " -> " $5]++}
|
9
|
+
END{
|
10
|
+
PROCINFO["sorted_in"] = "@ind_str_asc"
|
11
|
+
for(i in tbl) print i " = " tbl[i]
|
12
|
+
}
|
13
|
+
' test.tsv
|
4
14
|
|
15
|
+
天気 -> 晴 -> × = 3
|
16
|
+
天気 -> 晴 -> ○ = 2
|
17
|
+
天気 -> 曇 -> ○ = 4
|
18
|
+
天気 -> 雨 -> × = 2
|
19
|
+
天気 -> 雨 -> ○ = 3
|
20
|
+
温度 -> 暑 -> × = 2
|
21
|
+
温度 -> 暑 -> ○ = 2
|
22
|
+
温度 -> 暖 -> × = 2
|
23
|
+
温度 -> 暖 -> ○ = 4
|
24
|
+
温度 -> 涼 -> × = 1
|
25
|
+
温度 -> 涼 -> ○ = 3
|
5
|
-
|
26
|
+
湿度 -> 普通 -> × = 1
|
27
|
+
湿度 -> 普通 -> ○ = 6
|
28
|
+
湿度 -> 高 -> × = 4
|
29
|
+
湿度 -> 高 -> ○ = 3
|
30
|
+
風 -> 有 -> × = 3
|
31
|
+
風 -> 有 -> ○ = 3
|
32
|
+
風 -> 無 -> × = 2
|
33
|
+
風 -> 無 -> ○ = 6
|
6
|
-
```
|
34
|
+
```
|
7
|
-
$ sudo apt install datamash
|
8
35
|
|
9
|
-
$ datamash --header-in --header-out --sort unique 1-5 < test.tsv | column -t
|
10
|
-
unique(天気) unique(温度) unique(湿度) unique(風) unique(ゴルフプレイ)
|
11
|
-
晴,曇,雨 暑,暖,涼 普通,高 有,無 ×,○
|
12
|
-
|
13
|
-
$ datamash --header-in --header-out --sort -g5 count 5 < test.tsv | column -t
|
14
|
-
GroupBy(ゴルフプレイ) count(ゴルフプレイ)
|
15
|
-
× 5
|
16
|
-
○ 9
|
17
|
-
```
|
2
Update
test
CHANGED
@@ -6,9 +6,9 @@
|
|
6
6
|
```bash
|
7
7
|
$ sudo apt install datamash
|
8
8
|
|
9
|
-
$ datamash --header-in --header-out --sort unique 1-
|
9
|
+
$ datamash --header-in --header-out --sort unique 1-5 < test.tsv | column -t
|
10
|
-
unique(天気) unique(温度) unique(湿度) unique(風)
|
10
|
+
unique(天気) unique(温度) unique(湿度) unique(風) unique(ゴルフプレイ)
|
11
|
-
晴,曇,雨 暑,暖,涼 普通,高 有,無
|
11
|
+
晴,曇,雨 暑,暖,涼 普通,高 有,無 ×,○
|
12
12
|
|
13
13
|
$ datamash --header-in --header-out --sort -g5 count 5 < test.tsv | column -t
|
14
14
|
GroupBy(ゴルフプレイ) count(ゴルフプレイ)
|
1
Update
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
> 分割属性(天気など), と対応する属性値(晴など), ゴルフプレイ(○, ×)の頻度を求めるプログラムを作成したいです
|
2
|
+
|
3
|
+
> Ubuntu-20.04を利用しています
|
2
4
|
|
3
5
|
Perl を使うことが必要条件でなければ、[datamash](https://www.gnu.org/software/datamash/)を利用する方法もあります。
|
4
6
|
```bash
|