今週も特にありません

進捗どうですか?

2020-01-01から1年間の記事一覧

ggplot2 軸表記を変更する

ggplot2で可視化したグラフを資料等で貼り付ける時に、様々な人のことを考えて軸の表記を変えたいという場合がある。 見やすさやさしさ以外は本質的には変わらないが、変更の仕方をたまに調べていることがあるためメモ。 利用ユーザ数が大変多い2つのウェブ…

等幅の棒グラフを描画する ggplot2::position_dodge2

ggplot2で可視化した時に棒グラフの幅が変わって、変な見た目になってしまうことにたまに出会す。それを position_dodge2 で調整するメモ。 2つのウェブサイトがあり、ある期間に訪れた頻度ごとのユーザ数が記録されたようなデータがあるとする。 > library…

住所を都道府県と市区町村に分割するSQL

HiveQLにおける処理を想定したメモ。 住所が書かれたカラムがあり、それを都道府県単位、市区町村単位でまとめ上げて集計などしたい場合がある。 都道府県は問題ないが、市区町村の中には、"市"、"町"、"村"が含まれる自治体名があるために単純に分割するこ…

dplyr グループごとに指数化

グループごとにある時点における数値をもとにした指数化を行いたい。 何らかの売上データが時系列であるとする。 > library(tidyverse) > library(lubridate) > > sales_tbl <- tibble( + sales_date = rep(seq(ymd("2020-05-01"), ymd("2020-05-31"), by = …

Spark 集約関数 collect_list, collect_set

配列に集約する操作であるので、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

tidyr::completeに関するメモ。 日次データが欠損している(ある日に一件も事象が観測されていない)場合のデータに出会すことがよくある。 > library(tidyverse) > > stopcovid19_tbl_tmp <- read_csv("https://stopcovid19.metro.tokyo.lg.jp/data/130001_…

Spark ランク関数 rank, dense_rank, percent_rank

Sparkのランク関数メモ。商品IDとその商品カテゴリ、売り上げのようなデータがあったとする。 scala> val df = Seq( ("p00001", "food", 200), ("p00002", "food", 500), ("p00003", "food", 800), ("p00004", "food", 500), ("p00005", "food", 700), ("p00…