App-Bin4TSV-9

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN


上記↑の出力はこうなる↓

```
cpos diff ave.     range               frequent                                              frequency~lower(multi)                                       digits
1    68   1992.323 1955~2022           2019|2018|2001|2007|1996|1990                         22|20|19(4)|18(3)|17(11)|16(8)~14(7)|13(6)|12(8)|11|10|9(10) 4
2    12   6.104    1~12                5|11|1|9|4|3                                          185|151|147|138|78|74|67|60|35|30|9|1                        1~2
3    25   13.618   1~30                23|3|15|11|1|5                                        161|136|87|70|69|68(2)~10|9|8(3)|7|6(3)|5                    1~2
4    23   0.000    こどもの日~結婚の儀 休日|こどもの日|勤労感謝の日|文化の日|憲法記念日|元日 104|68(8)|67|57|56|53~27|16|7|3|2(2)|1(3)                    2~12
```

4. PCR検査実施人数の例

```
colsummary -= -i, pcr_case_daily.csv | expandtab
# -= で 1行目を列名の並びと見なし、データの値と見なさない。
# -i, により入力の区切り文字を(タブ文字ではなくて)コンマ文字(,)に変更している。
```

上記↑の出力はこうなる↓

```
cpos diff ave.      name                   range              frequent                                                      frequency~lower(multi)             digits
1    487  2020.347  日付                   2020/10/1~2021/6/9 2020/8/21|2020/7/19|2020/7/24|2020/5/10|2020/10/26|2020/11/11 1(487)                             8~10
2    85   24.988    国立感染症研究所       0|1~517            0|20|8|3|18|36                                                354|6(2)|5|3(6)|2(23)|1(52)        1~3
3    178  222.912   検疫所                 0|1~1733           0|1|13|4|11|3                                                 257|12|5(2)|4(2)|3(3)|2(22)|1(147) 1~4
4    474  3910.355  地方衛生研究所・保健所 398~11856          2425|867|4678|2502|6314|1326                                  2(13)|1(461)                       3~5
5    471  20647.676 民間検査会社           ~0|2~89005         0|37|28|3651|11|5                                             9|2(8)|1(462)                      0|1~5
6    453  1974.018  大学等                 ~0|4~6367          0|1012|4766|558|650|3924                                      14|2(21)|1(431)                    0|1~4
7    455  7567.082  医療機関               |9~35210           |430|543|1808|795|10649                                       18|2(15)|1(439)                    0|1~5
```

上記の`colsummary`の出力の例として現れたave.は数値としての平均である(数で無い入力値は0として計算する)。この出力列は `-m 0`というオプションで抑制できる。`expandtab`で半角空白文字で...

### 複数ファイルの行データの重なりを見る(venn)


4個のプロセス置換でデモ:

```
cpanm App::venn
function y(){ echo -n $* | perl -pe's/./$&\n/g' }
perldoc List::Util # qキーで終了. minstrとmaxstrを参照
venn <(y ABCCCC) <(y AABDEF) <(y ABBDEF) <(y DEEEF)
```

上記の出力↓

```
cardi. file1  file2  file3  file4  minstr maxstr
2.     2      3      3      0      'A'    'B'
1.     4      0      0      0      'C'
3.     0      3      3      5      'D'    'F'
```

### 列をいろいろ操作(csel)

```
cpanm App::csel
# ↑ コマンド csel をインストール。
perl -E'say join"\t",1..12' | tee c12.tsv
# 1   2   3   4   5   6   7   8   9   10  11  12  
awk '{print$3,$4,$5,$6,$7}' c12.tsv # AWKの例
# 3 4 5 6 7
csel -p 3..7 c12.tsv # cselはAWKより簡単
# 3   4   5   6   7
csel -d3..7,10,12 c12.tsv # -dで抑制(AWKだと難)
# 1   2   8   9   11
csel -h12..10 c12.tsv     # -hで先頭(左)へ移動
# 12  11  10  1   2   3   4   5   6   7   8   9
csel -t9,6 c12.tsv        # -tで末尾(右)へ移動
# 1   2   3   4   5   7   8   10  11  12  9   6
```

### クロス集計(crosstable)

```
cpanm App::crosstable
```

1. 祝日の例

```
awk -F/ 'NR>1{print $2"\t"$1}' syukujitsu.csv | crosstable | csel -p1,-43..-1 | expandtab
```

上記の出力↓ (6月は通常休日はないが、1993年にはあった。)

```
X1*X2 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022
1     2    2    2    2    4    2    2    2    2    4    2    2    2    2    2    4    2    2    2    2    2    2    2    2    2    2    3    2    2    2    2    2    3    2    2    2    2    3    2    2    2    2    2
2     1    1    1    1    1    1    1    1    1    2    2    1    1    1    1    1    2    1    1    1    1    2    1    1    1    1    1    2    1    1    1    1    1    1    1    1    1    1    2    1    3    2    2
3     1    1    2    1    1    1    1    1    2    1    1    1    1    1    1    1    1    1    1    2    1    1    1    1    1    2    1    1    1    1    2    1    1    1    1    1    2    1    1    1    1    1    1
4     1    1    1    1    2    1    1    1    1    1    2    1    1    1    1    1    1    1    1    1    1    2    1    1    1    1    1    2    1    1    1    1    2    1    1    1    1    1    2    2    1    1    1
5     2    3    2    2    2    3    2    3    3    3    3    4    3    3    3    3    4    2    3    3    3    3    4    2    3    3    3    3    4    4    3    3    3    4    4    4    3    3    3    6    4    3    3
6     0    0    0    0    0    0    0    0    0    0    0    0    0    1    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0
7     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    1    2    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    2    2    1
8     0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    0    1    1    1    2    1    2    1
9     2    2    2    2    3    3    2    2    2    2    3    3    2    2    2    2    3    2    2    2    2    3    3    2    2    2    2    3    2    3    2    2    2    2    2    3    2    2    3    2    2    2    2
10    1    1    2    1    1    1    1    1    1    1    1    1    1    2    1    1    1    1    1    2    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    2    0    0    1
11    3    2    2    2    2    3    3    2    2    2    3    3    2    2    2    2    3    3    2    2    2    2    3    3    2    2    2    2    3    2    2    2    2    3    3    2    2    2    2    3    2    2    2
12    0    0    0    0    0    0    0    0    0    1    2    1    1    1    1    1    1    1    1    1    1    2    1    1    1    1    1    2    1    1    1    1    2    1    1    1    1    1    2    0    0    0    0
```


### 頻度表の作成(freq)

```
cpanm App::freq # まだインストールしていない場合
# cpanm -U App::freq でアンインストールも可能。
```

1. 休日のデータを使った例:

```
awk -F/ 'NR>1{print $1}' syukujitsu.csv | freq -~ -a | head
# このfreqは対象となる値の辞書式順序で元々出力するが、
# -~ の指定によりそれが逆順になる(2022年から1955年に向かって表示する)。
# -a で頻度の累積和も表示する。
# headコマンドで先頭の10行のみ見せる。
```



( run in 3.101 seconds using v1.01-cache-2.11-cpan-364913b4093 )