まずは蝋の翼から。

学んだことを書きながら確認・整理するためのメモブログ。こういうことなのかな?といったことをふわっと書いたりしていますが、理解が浅いゆえに的はずれなことも多々あると思うのでツッコミ歓迎

使い方メモ(不便解決)

列名を正規表現で一括置換する

やりたいこと Rのデータフレームで列名を一括置換したい。 ピンポイントで指定する場合は以下の記事のようにすればいいが列名が多いときは面倒。 Rのデータフレームで、列名指定で列名の一部を変更する方法 - Rプログラミングの小ネタ 例えば、この記事のよ…

列名の末尾にまとめて文字列をくっつける

やりたいこと 表題通り。 個人的に使った事例(のイメージ)としては、例えば店舗データとして、「売上、店舗規模、従業員数」があるとする。 これらのデータをもとに店舗の売上モデルを作成するときに、近隣店舗の情報もモデルに入れる場合、各列名の末尾に…

forecastのtrain/test期間の結果をggplot2で描画できるようにする

やりたいこと ARIMAなどをする際に予測をするためにforecast関数を用いる。 その際、forecast関数によって作成されたオブジェクトはautoplot関数でそのまま描画できる。 キレイでリッチなグラフ描画をおこないたいので、ggplotを使って描画をしたい。 問題点…

ARIMAXで複数のモデルを一気に試す

ARIMAXモデルにおいて、X(外部要因)に何を入れるか考える際にいちいち1つ1つ試していくのは手間がかかる。そのため、loop処理で一気に計算をおこない結果を比較したい。 データ テキトーに以下のデータで考える。 > df # A tibble: 7 x 5 date value x1 x2_1…

R(Python)のjoin条件で等号以外を使う

目的 下記のようなデータにおいて、Aのstart_dateからend_dateの期間でBをJOINしたい。 A = tibble(id = c(1,2,3), start_date = c('2018-01-01','2018-02-01','2018-03-01'), end_date = c('2018-01-02','2018-02-03','2018-03-01')) B = tibble(date = seq…

Rでloopを使って動的な名前の列を追加していきたい

目的 Rにおいて、各loop毎に異なった名前の列名を追加していきたい。 問題 変数名として解釈される前に新規列名として解釈がされる。 iris2 = iris for (n in 1:3) { column_name = paste('column',n, sep = "") iris2 = iris2 %>% mutate(column_name = n) …

Rでloopを使って動的な名前の変数を作成したい

目的 Rにおいて、loop処理内で各loop毎に異なった変数を作成したい。 問題 pasteで各loop毎に文字列を作成して、その文字を変数名にしようとした。 for (n in 1:3) { v_name <- paste('v', n, sep = '') #変数名作成(v1,v2,v3) v_name <- n #作成した変数名(…

ggplotで別々のデータを使った2軸グラフを使いたい

ggplot2で異なるグラフを重ねて、yの値が左右で異なるグラフを2軸グラフという。 イメージ的には、下記の2グラフ(平均価格をpoint、平均カラット数を棒グラフ)を1画面に収めるイメージ(※棒グラフの数値テキストは、以降での値を確かめる用なので除く)。 ~ …

週単位にまとめた時系列データで軸目盛を週初め日付ベースにしたい

事象 表題通り。 データとして、週初めの日付が入っているデータがある。その日付単位でplotをすると軸がdateゆえに目盛が週初め刻みではなく、通常通りの1日刻みとなる。そのため、下記グラフのように欲しい部分(週初め日付)とは別の日付が目盛に表示され…

tidylogでミスを減らす

tidylogというライブラリがなかなか良さげ。 簡単に概要を書くと、「tidy系の処理結果のサマリーを実行時に表示してくれる」。 製作者のgit丸写しだけど挙動を以下に示す。 GitHub - elbersb/tidylog: Tidylog provides feedback about basic dplyr operatio…

編集距離を用いた固有名詞の名寄せ

編集距離(レーベンシュタイン距離)を用いて、名寄せ作業をおこなった。 レーベンシュタイン距離については過去記事参照。 knknkn.hatenablog.com 今回の目的は前述のように、データソースAとBで、同じ固有名詞を示していても表記ゆれがあったため名寄せを…

文字列の類似度を測る編集距離

仕事である固有名詞に対してデータソースがAのものとBのもので、微妙に表記ゆれがあったため名寄せ作業をおこなう必要があった。 目で見ていくとキリがないので文字列の類似度測って閾値以上のものをリストアップした上で目で見ると効率が良くなりそうなので…