スクリプト
d = read.csv("auWallet_201409.csv", skip=17, fileEncoding="shift_jis", header=F, stringsAsFactors=F) names(d) = c("id","timestamp","kind","shop","amount","balance","campaign","foreign_amount","rate","dummy_column") d$date = as.Date(d$timestamp, "%Y/%m/%d %H:%M") d$paid = abs(as.integer(gsub(",","",d$amount))) # 支払のみをフィルタ dpaid = d[d$kind=="支払",] plot(dpaid$date, dpaid$paid, ylim=c(0, 2500)) lines(dpaid$date, dpaid$paid, ylim=c(0, 2500)) abline(h=mean(dpaid$paid), col=2) abline(h=mean(dpaid$paid)+sd(dpaid$paid), col=3) abline(h=mean(dpaid$paid)-sd(dpaid$paid), col=3)
結果
赤い線が平均、緑の線は平均から標準偏差を足し引きした金額です。
解説
CSVの不要な行の読み飛ばし
read.csvのskip引数で読み飛ばす行の数を指定できます。実は明細のヘッダになっている17行目も読み飛ばして、あとでカラム名をスクリプトでつけています。17行目のヘッダをそのまま使うとヘッダがずれからなんですが、なんでだろう。。。Shift_JISを含むCSVの読み込み
read.csvのfileEndoding="shift_jis"カンマがついた数値(金額)の読み込み
gsubを使ってカンマを削除するのがR流らしいです。MacにRをbrewでインストール
RをMacにbrewでインストールするときにfortranのインストールでこける問題がありましたが、ここからバイナリ版のgfortranを入れました。(参考: homebrew install for gfortran fails for xcode 4.2)感想
MacにRを入れて使うのはいろいろ面倒なことがある。Ubuntuで使うのが楽。一日に数回使っているところのプロットは合計した方が良いなぁ。
日々、使った金額が見られるのでauWALLETいいかも。
0 件のコメント:
コメントを投稿