R
プログラミングをするときにはDRYの法則と言われるように、同じような処理は関数で書いて使い回す方がメンテ効率や可読性が上がる。 特に、データサイエンス的な場合はコードの使い捨てがしやすいので煩雑になるので特に意識した方が良い。 zerebom.hatenabl…
Rでstr_match_all(string, pattern)でstringに対してマッチしたpattern文字列を抽出する。 pattern部分は()を入れることでpattern中の一部分だけを取ることができる。 listの1要素目がマッチした部分の全体、2要素目以降が括弧でマッチさせた抽出される。 _a…
BUSINESS DATA SCIENCEの続き。 データなどは作者のgitにある。 Business Data Science: Combining Machine Learning and Economics to Optimize, Automate, and Accelerate Business Decisions作者:Taddy, Matt発売日: 2019/08/21メディア: ハードカバー 最…
やりたいこと mutateでは、関数を以下のように適用を適用することができる。 library(tidyverse) iris %>% group_by(Species) %>% mutate(Sepal.Length_lag2 = lag(Sepal.Length,2)) # Sepal.Length Sepal.Width Petal.Length Petal.Width Species Sepal.Len…
やりたいこと モデルを作成して、そのモデルをある値に適用したときの推定結果を作成したい。 今回は モデルの学習データの推定値 任意の値をモデルに適用したときの推定値 の2パターンについて書く。 共通処理 今回、モデルはdiamondsに対して線形モデルlog…
やりたいこと 関数の引数を変えて適用したDFを結合したい。 以下のように、指定した列colに対してunder_value以下となるdfを抽出して、そのunder_valueをfiltered_values列に追加する関数filtered_under_valueで考える。なお、見た目上わかりやすいためhead…
数値で並び替える場合 以下のようなグラフで考える。 library(tidyverse) data(diamonds) # データ作成 df = diamonds %>% group_by(clarity, cut) %>% summarise(n = n()) %>% ungroup() # わかりやすいものだけ抽出 df_filtered = df %>% filter(clarity %…
表題通り、サブサンプルに分けた各データに対して複数モデルを適用したい。 より具体的に書くと、以下のdropoutさんの記事では 複数のモデルを当てはめる場合 diamondデータに対して、3モデルを適用 サブサンプルに分けて分析する場合 diamondデータをclarit…
これはなにか ggplotのfacet内の文字を任意の文字数で折り返し(改行)をしたい。 どういうことかというと、下記のようにirisベースでテキトーにSpeciesを日本語化して文字数を増やしたもので考える。 library(dplyr) iris2 = iris %>% mutate(Species_jp = ca…
ggchartsとは Rのggplot2のラッパーで、aes + geom_xxxの形式ではなく、pythonのseabornやplotly_expressみたいにグラフ関数を用いて表現をすることができる。ラッパーなので、通常の書き方を組み合わせることができるので、ggplot2の機能が追加されただけと…
データを加工するときに、未加工と最終加工結果は値がおかしくないかチェックすることがわりかしあると思うが、最終結果に至る途中段階をチェックすることは手間がかかる。 そのようなとき、assertrではRのパイプラインの途中に入れることで、その段階におい…
Python, RともにDBに接続するときにパスワード情報をソースに直打ちすると、gitなどにアップするときに色々とヤバいので直打ちしない方法をメモ。 json設定ファイルから 以下のようなpassword管理用のjsonファイルを作る。 { "redshift": { "id": "myID", "p…
ggplotをきれいに見せるパッケージlemonを動かしたので紹介。 基本的に公式ベース github.com facetしたときの軸目盛りの明示 以下のようなデータがあるとする。 library(tidyeval) g = mtcars %>% # ggplot(aes(wt, mpg)) + ggplot(aes(wt, mpg, color = fa…
効果検証入門を買った。因果推論系はあまりちゃんと手を動かしていないので、気になったところのみ自分なりにまとめる。 効果検証入門〜正しい比較のための因果推論/計量経済学の基礎作者:安井 翔太発売日: 2020/01/18メディア: 単行本(ソフトカバー) gith…
効果検証入門を買った。因果推論系はあまりちゃんと手を動かしていないので、気になったところのみ自分なりにまとめる。 効果検証入門〜正しい比較のための因果推論/計量経済学の基礎作者:安井 翔太発売日: 2020/01/18メディア: 単行本(ソフトカバー) gith…
効果検証入門を買った。因果推論系はあまりちゃんと手を動かしていないので、気になったところのみ自分なりにまとめる。 効果検証入門〜正しい比較のための因果推論/計量経済学の基礎作者:安井 翔太発売日: 2020/01/18メディア: 単行本(ソフトカバー) gith…
効果検証入門を買った。因果推論系はあまりちゃんと手を動かしていないので、気になったところのみ自分なりにまとめる。 効果検証入門〜正しい比較のための因果推論/計量経済学の基礎作者:安井 翔太発売日: 2020/01/18メディア: 単行本(ソフトカバー) gith…
今まではsapplyやpurrr::mapを用いて行ごとの処理をおこなっていたが、rowwiseを用いて同様の処理を簡潔におこなえるようになった模様。 dplyr.tidyverse.org いったん、簡単な例として、集約関数で試す。 なお、2020/04/12時点ではdplyrの開発版から可能。 …
dplyr1.0.0から追加されるacrossで条件に当てはまる列に対して個別に集約関数の適用ができるようになった。 今までもsummarise_atでもできたがこの場合は1条件にしか適用できなかったが、acrossでは複数条件での適用が可能。 例 summarise_atではSepalで始ま…
dplyrではNSEなどの関係で、関数内で普段通りのdplyr的な書き方はできなくて色々とややこしかったのが、rlang 0.4.0からは{{ }}を使って直感的な書き方ができるようになったらしい。 www.tidyverse.org www.r-bloggers.com 関数を使わないでコピペを繰り返す…
ggplotで、桁数が大きいと自動でe+n表示へと変わる。 自分で分析する場合はいいが、この表示に慣れていない人に見せる際にわかりづらいので制御する。 まずはデフォルトでの表示。デフォルトでは107以降が存在する場合e+nの表示になる。 library(tidyverse) …
ggplotではX軸の目盛り幅を指定するときはscale_x_continuousに対してbreaksオプションに対してseqを用いて刻み幅nでX軸に値を表示します。 ただし、seqでの指定だと breaks = seq(xmin, xmax, n)といったようにxの表示最大値と最小値を意識して使わないとい…
問題 ggplotではgeom_histgramを用いるとヒストグラムを作成できる。また、オプションとしてbinwidthを指定するとビン幅を決めることができる。 library(tidyverse) data <- c( -1, 1, 11, 27, 31) data %>% tibble() %>% ggplot(aes(x = .)) + geom_histogr…
概要 問題 Rで列の並び順を固定したい 解決方法 factorを用いてfactor型に変換し、その際にlevelを指定する。 実践 データを読み込む library(tidyverse) library(tidylog) df_iris = iris %>% tibble() %>% select(species=Species, sepal_length=Sepal.Len…
Rでは、今まで縦持ち化するときにはtidyr::gather、横持ち化するときはtidyr::spreadを使っていたがオプションが毎回よくわからずドキュメントを読んでいたが、それはみんな同じことを思ってたみたいでdplyr1.0以降では再設計されてtidyr::gather→tidyr::piv…
BUSINESS DATA SCIENCEの続き。 データなどは作者のgitにある。 Business Data Science: Combining Machine Learning and Economics to Optimize, Automate, and Accelerate Business Decisions作者:Taddy, Matt発売日: 2019/08/21メディア: ハードカバー 最…
BUSINESS DATA SCIENCEの続き。 データなどは作者のgitにある。 Business Data Science: Combining Machine Learning and Economics to Optimize, Automate, and Accelerate Business Decisions作者:Taddy, Matt発売日: 2019/08/21メディア: ハードカバー 最…
BUSINESS DATA SCIENCEの続き。 データなどは作者のgitにある。 Business Data Science: Combining Machine Learning and Economics to Optimize, Automate, and Accelerate Business Decisions作者:Taddy, Matt発売日: 2019/08/21メディア: ハードカバー 最…
BUSINESS DATA SCIENCEの続き。 データなどは作者のgitにある。 Business Data Science: Combining Machine Learning and Economics to Optimize, Automate, and Accelerate Business Decisions作者:Taddy, Matt発売日: 2019/08/21メディア: ハードカバー 最…
BUSINESS DATA SCIENCEの続き。 データなどは作者のgitにある。 Business Data Science: Combining Machine Learning and Economics to Optimize, Automate, and Accelerate Business Decisions作者:Taddy, Matt発売日: 2019/08/21メディア: ハードカバー 最…