ggplot2で可視化したグラフを資料等で貼り付ける時に、様々な人のことを考えて軸の表記を変えたいという場合がある。 見やすさやさしさ以外は本質的には変わらないが、変更の仕方をたまに調べていることがあるためメモ。 利用ユーザ数が大変多い2つのウェブ…
ggplot2で可視化した時に棒グラフの幅が変わって、変な見た目になってしまうことにたまに出会す。それを position_dodge2 で調整するメモ。 2つのウェブサイトがあり、ある期間に訪れた頻度ごとのユーザ数が記録されたようなデータがあるとする。 > library…
HiveQLにおける処理を想定したメモ。 住所が書かれたカラムがあり、それを都道府県単位、市区町村単位でまとめ上げて集計などしたい場合がある。 都道府県は問題ないが、市区町村の中には、"市"、"町"、"村"が含まれる自治体名があるために単純に分割するこ…
グループごとにある時点における数値をもとにした指数化を行いたい。 何らかの売上データが時系列であるとする。 > library(tidyverse) > library(lubridate) > > sales_tbl <- tibble( + sales_date = rep(seq(ymd("2020-05-01"), ymd("2020-05-31"), by = …
配列に集約する操作であるので、aggの中で関数を適用することになる。 scala> val df = Seq( ("p00001", "food", 200), ("p00002", "food", 500), ("p00003", "food", 800), ("p00004", "food", 500), ("p00005", "food", 700), ("p00006", "book", 900), ("…
tidyr::completeに関するメモ。 日次データが欠損している(ある日に一件も事象が観測されていない)場合のデータに出会すことがよくある。 > library(tidyverse) > > stopcovid19_tbl_tmp <- read_csv("https://stopcovid19.metro.tokyo.lg.jp/data/130001_…
Sparkのランク関数メモ。商品IDとその商品カテゴリ、売り上げのようなデータがあったとする。 scala> val df = Seq( ("p00001", "food", 200), ("p00002", "food", 500), ("p00003", "food", 800), ("p00004", "food", 500), ("p00005", "food", 700), ("p00…
都道府県名や都道府県コードなどの地理的情報、そして、それらのユーザ数や売上げなどのデータがあり、その濃淡を日本地図へマッピングして可視化したいという場合がある。ggplot2でやってしまえるところではあるが、highcharterパッケージを利用すれば意外…
書き慣れたglmのみで分析を回してしまっていることが多いため、tidymodelsを用いることで、このようなtidyな感じに分析できるということを一通り確認したメモ。 ここでは、kernlabのspamデータを用いて、スパムメールかそうではないかをロジスティック回帰pa…
これからのRにおいてVARモデルで予測したい場合には、varsよりもfableを使えば良さそうというもの。 データ VARモデルについて詳しく解説してくださっているものと同じCanadaデータを用いることにします。 tjo.hatenablog.com logics-of-blue.com > library(…
R-bloggersで見つけたあまり注目されなそうなパッケージを拾ってみます。時系列解析系のパッケージはなんでも一度は入れてみる派です。 www.r-bloggers.com Rでは時系列データを扱うためのクラスが乱立しています。 伝統的なものとしてはtsやzoo、その後一時…
珍しいケースに遭遇したので、ちょっと調べたことをメモします。 日付列にほんの一部だけが日付のような文字列が入っていて、その他ほとんどがNAが入っている数十万レコードのデータを渡されました。文字列型ではなく、 日付型として扱おうと、lubridate::ym…
オライリーの「RとKerasによるディープラーニング」も出版され、Rユーザでもディープラーニングに手を出してみようという人が増えている気がします。これは、Rユーザにとってのディープラーニング関連情報のありかをまとめたものになります。 あらためて、RS…
以下の記事の通りで、差分計算することが多い方はすでにdplyr::lagを使っていると思います。ここでは、差分計算と変化率、対数収益率を計算する場合についてと、最近少し調べていたtsibbleの中に含まれる関数に関するメモになります。 notchained.hatenablog…
時系列データに対して相関を出す場面で、毎回どういう変換するんだっけを調べている気がするためメモします。 corrrパッケージでどのようなことができるのかについては、kazutanさんのページが大変参考になります。 kazutan.github.io データ 店舗ごとの何ら…
タイトル通りのメモ。 library(tidyverse) library(lubridate) set.seed(12345) order_tbl <- tibble( order_date = seq(ymd("2019-03-01"), ymd("2019-03-31"), by = "1 day"), order_num = rpois(31, 5) ) 日曜日と月曜日スタートする場合を追加します。 >…
日次データが存在して、その日次データとそれを月ごとにまとめ上げた月次データの可視化を行いたい場合があります。 library(tidyverse) library(lubridate) set.seed(12345) order_tbl <- tibble( order_date = seq(ymd("2018-01-01"), ymd("2018-12-31"), …
機械学習モデルの分類精度を評価したり、時系列モデルのn期先の予測精度を評価したりする際に、地味に評価指標の計算式をネットで調べて自前でRの関数として実装したりしていました。 しかし、(実際にはよく調べていなかっただけですが、)すでに基本的な指…
「偽装する」というと感じが悪いですが、いつも使っているChromeやSafariなどのブラウザで表示される同じ状態をスクレイプしたかったということで、rvestでのユーザーエージェントの変更の仕方を調べたメモ。 github.com 結論としては、rvest::html_session(…
データの値の正負によって色分けをしたい場合があります。この場合、mutateでTRUE/FALSEの判定をした新しいカラムを追加して可視化するということをよくしていましたが、データが大変多い場合などには、可視化の色分けのためだけにカラムを追加するというこ…
日次データを週次データとして売り上げなどをまとめて集計したいということはよくあります。今まで特に何も気にすることなく、lubridateのisoweekを使って週番号を付けて集計していましたが、年を跨いだ場合にどのような週番号が付くのかを確認したのでメモ…
RでFashion MNISTの続き。前回の全結合モデルでは、正解率9割届かずという結果でした。今回は畳み込みニューラルネットを用いることで、それらの正解率が向上するか確認します。 keras.rstudio.com データ準備 前回同様、まずは畳み込みニューラルネットで読…
RでFashion MNISTの続き。前回はデータの可視化で留まっていたので、今回はチュートリアルに載っている基本的な全結合モデルでいろいろと比較を行ったメモ。 keras.rstudio.com データ準備 はじめに、array形式からNNに入力できるようなmatrix形式に変換した…
今更ながら、RStudioのkerasパッケージのチュートリアルを読んでいたら、Fashion MNISTデータセットをRからでも簡単に取って来れるようだったので、チュートリアルの実践とこのようなデータのggplot2でのデータ可視化方法を含めてメモ。 keras.rstudio.com …
表示数の変更 tibble(tbl_df)型のデータを表示すると、デフォルトでは先頭の10行が表示されます。 加えて、最大表示数は20行に設定されています。 library(tidyverse) class(diamonds) #> [1] "tbl_df" "tbl" "data.frame" diamonds #> # A tibble: 53,940…
時系列データもTidydataとして扱う流れが加速しているようです。 xtsなどで頑張っていた時代からアップデートしていきます。 時系列データをTidy化するtsibbleパッケージに関連して、モデリングに対応するfassterパッケージも絶賛開発されています。 今回はf…
2017年は何かと仮想通貨の価格が高騰(or 暴落)が騒がれた一年でした。 仮想通貨が法定通貨と同様に決済手段や金融商品の一つとして定着するようになった際には、今以上に様々な分析が行われると思います。 その前に、tidyverseな世界観でのデータ取得から…
tidyquantを使った分析メモの続き。前回までに個別銘柄のリターンについて計算したので、ポートフォリオのリターンについて出してみます。 PerformanceAnalytics::Returns.portfolioのラッパー関数であるtq_portfolioを使えば、tidyなデータを入力として簡単…
tidyquantを使った分析メモの続き。今回は対数リターンの計算とその可視化までをやってみます。 github.com masaqol.hatenablog.com 対数リターンの計算 TOPIX100構成銘柄の株価データを取得したい場合、銘柄コードを用意して、tidyquantのtq_getを使うこと…
R-bloggersでも度々登場して気になっていたtidyquantを使った分析メモになります。 github.com 基本的な使い方は、Vignettesが充実しています。 また、日本語での資料としてはtidyquantの使い方があります。 また、Exploratoryと組み合わせて分析した記事も…