2022-06-01から1ヶ月間の記事一覧

交絡のコントロールについて

因果推論したいとき、交絡をいかにコントロールするかは大切 交絡のコントロールの方法はたくさんある 層別分析 多変量解析(重回帰分析など) 傾向スコア(マッチング、逆確率重みづけ、など) などなど 交絡が生じているときにコントロールしないとどうな…

pmapの特殊な仕様について

purrr::map2 でベースを作ったあと、引数をさらに増やしたいときがある map2 で扱える引数は2つまでなので、引数を増やすには purrr::pmap を使う pmap は 引数の指定はやや特殊 map2 のように .x .y …ではなく、pmap では ..1 ..2 ..3 …としなくてはならな…

列名を綺麗にしたいとき

janitor::clean_names という関数がとても便利。 列名はすべて小文字に変更 列名はすべてスネークケースに変更 列名に含まれる空白は _ に置換 列名に含まれる邪魔な文字は削除(例:ウムラウト、 @ 、 () など) 列名に含まれる % は percent に変更 列名が…

ggplotで文字列をaesに引き渡したいとき

ggplotは aes の中がNSEになっている。なので、 ggplot(data = iris) + geom_histogram(aes(x = Sepal.Length)) これは動くけど、 ggplot(data = iris) + geom_histogram(aes(x = 'Sepal.Length')) これは動かない。文字列を aes に引き渡したいときは、 aes…

Google Chromeの検索画面を中央寄せにする方法

Google Chromeの検索画面が左寄せでうっとうしい 首が痛くなるんじゃい~ 中央寄せにするための拡張機能があって便利だった。 zslec.medium.com

NSE処理で変数列名を柔軟に変更

R NSE

データフレーム と 使用する変数 と 新しく合成する変数列名 を引数にもつ関数を作ったとする。 f <- function(data, var, new_var) { # NSE処理 var <- rlang::enquo(var) new_var <- rlang::enquo(new_var) # varを2倍した新しい変数 `new_var` を作る .d …

ggplotでNSE処理

ggplotで変数を柔軟に変更できるような自作関数を作りたくなったら、やはりNSE処理が必要になる。例えば、あるデータフレームを使用して、そのデータフレーム中の2つの変数を指定し、散布図を描きたいとしよう。 ggplot(data = iris) + geom_point(aes(x = S…

patchworkについて

group_nest して map で ggplot を作ったあと、そのfigsをまとめて1つのfigにしたいときがある。 そういうときに patchwork::wrap_plots が便利。 例えばこんなコード。 pacman::p_load(tidyverse) d_plot <- iris %>% group_nest(Species) %>% mutate( figu…

NSE処理について

R NSE

引数に データフレーム と データフレーム中の変数 を指定可能な自作関数を作りたいときがある。 例えば、 iris %>% select(Sepal.Length) という超簡単な処理を Sepal.Length 以外の変数でも使えるように、この処理を関数化してみよう。直感的にはこんな風…

blogdownについて

Rmarkdownでブログ書きたい Rstudioで色々慣れてしまったので、技術ブログの管理もRstudioでやりたい。もっというと、 Rmarkdown で書きたい。blogdown はそういうコンセプトのライブラリらしい。 こんな感じでやればええんとちゃうか。 git hubでリモートリ…

バージョン管理について(pins・renv)

バージョン管理って大切なんですね。チームで動くときは特に。 バージョン管理したいのは、パっと思いつくものだと、 - Rそのもの - ライブラリ - スクリプト - 元データ これらのバージョンを管理しておけば、 - 過去のある時点の結果を再現 - 引継ぎの後任…