min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

bash で GDP名目成長率を計算

資本論よんでる。面白すぎるだろコレ。

簿記と合わせるといろいろ社会が見えすぎて。知的刺激がビッシビシ。

 

GDP眺める。

計算式アタマに貼り付けたいのでbashスクリプト組んでみる。

 

やりたいのはコレ。の数値部分の計算

f:id:min117:20210828153108p:plain

計算サイトに手打ちすれば各年ごとのは出るけど

f:id:min117:20210828153507p:plain

これを全部の年に通しでイッパツで出したい。

keisan.casio.jp

 

データはこれ。政府統計。

f:id:min117:20210828153338p:plain

www.esri.cao.go.jp

 

できた。細かい機能はアップは後でやるとして、荒削りだけどとりあえず実装。

f:id:min117:20210828153703p:plain

bashで小数点計算するとこ(bcコマンド)とその表示(printf)は勉強になった。

 

あとはforループ。前回ループで読み込んだデータ(行データ)をいったんPREVに保存しとくとこが少々クセあったかなと。いろいろ応用できそう。

 

実行

$ ./my_GDP.sh

f:id:min117:20210828153912p:plain

やっぱ2008年(リーマンショック)のGDPの落ち込みがハンパない。

f:id:min117:20210828154026p:plain

俺らがシコシコ働いて貯めてきたはずの年金や、もらえるはずだった銀行預金利マネーゲームやってたやつらの暴落のツケに溶かされたわけだ。ほんとふざけてる。

www.youtube.com

 

やっぱ本読まないと。テレビではこんな事実は伝えないし。

俗メディアなんぞ見てると(現実から遊離して)アホになるね。

 

保存用ソース

#!/bin/bash

 

#https://www.esri.cao.go.jp/jp/sna/data/data_list/sokuhou/files/2021/qe212/tables/gaku-mfy2121.csv

 

echo '---data---'

echo 'https://www.esri.cao.go.jp/jp/sna/data/data_list/sokuhou/files/2021/qe212/tables/gaku-mfy2121.csv'

echo '----------'

 

 

#cat gaku-mfy2121.csv | nkf -wLux | awk '{print $1,$2}'

#cat gaku-mfy2121_utf8.csv | awk '{print $1,$2}'

 

#cat gaku-mfy2121_utf8.csv | awk '{print $1,$2}' | sed -e s/"\([0-9]\),"/"\1"/g | sed -e s/'"'/''/g

#cat gaku-mfy2121_utf8.csv | awk '{print $1,$2}' | sed -e s/"\([0-9]\),"/"\1"/g | sed -e s/'"'/''/g | awk -F, '{print $2}'

 

#cat gaku-mfy2121_utf8.csv | awk '{print $1,$2}' | sed -e s/"\([0-9]\),"/"\1"/g | sed -e s/'"'/''/g | awk -F, '{print $2}' | sed -e s/"\.\([0-9]$\)"/"\1"/g

 

cat gaku-mfy2121_utf8.csv | awk '{print $1,$2}' | sed -e s/"\([0-9]\),"/"\1"/g | sed -e s/'"'/''/g | awk -F, '{print $2}' | awk -F. '{print $1}'

 

 

#init

my_PREV=

my_NENDO=1994

 

for i in $(cat gaku-mfy2121_utf8.csv | awk '{print $1,$2}' | sed -e s/"\([0-9]\),"/"\1"/g | sed -e s/'"'/''/g | awk -F, '{print $2}' | awk -F. '{print $1}')

 

do

    echo "$my_NENDO"'/3月:'"$i"

    if [[ -z $my_PREV ]]

    then

        #echo pppppppp

        my_PREV="$i"

    fi      

 

    #読み込み中の値

    my_NOWW="$i"

 

    # 表示

    echo 'my_NOWW='"$my_NOWW"

    echo 'my_PREV='"$my_PREV"

 

 

    BUNSI=$*1

    BUNBO=$my_PREV

 

    echo '分子:'$BUNSI

    echo '分母:'$BUNBO

 

    #echo $*2

    #echo "scale=5; $BUNSI / $BUNBO "|bc

    #echo "scale=5; $BUNSI / $BUNBO *100" | bc

    #printf "%.2f" $(echo "scale=5; $BUNSI / $BUNBO "|bc)

    #echo ''

    printf "%.2f" $(echo "scale=5; $BUNSI / $BUNBO *100" | bc)

    echo ''

 

    #読み込み中の値を退避

    my_PREV="$i"

    echo '----------------='

    echo $*3 >>/dev/null

 

done

 

 

my_GDP.sh                                                                              1,2            To

 

 

さすがにbashじゃグラフは作れんから(とはいえコレくらいのシンプルな比較ならjavascriptでイケるかな?)、次回はiPythonにでも食わせてグラフにしてみる。

 

 

 

 

*1:$my_NOWW - $my_PREV

*2: $BUNSI / $BUNGO | bc

*3:my_NENDO++