Take Your Time

仕事や研究、コンピューターとの付き合い方

R

tbl_summaryで記述統計をつくる

R

こんな感じで使う df %>% gtsummary::tbl_summary() %>% gtsummary::as_gt() %>% gt::as_latex() %>% write(file = "out.latex") 注意点 tbl_summary の出力は画像なので、latexをつくりたければ、as_gtをかましてからas_latexで出力を変換する。 そのまま標…

多重検定

R

割と簡単だったのでメモ とりあえず multcomp をインストールして、aov で分析して一旦Tukeyで検定してから補正をかけるイメージ。 Shafferが強いと思っていたが、もっと強いのがWestfallだった res.aov <- aov(outcome ~ treatment, data = df) res.tukey <…

aes_stringという正解:aesにpasteで作ったカラム名を使いたいとき

R

ggplotの世界は深い。 var.name <- paste("hogehoge", "hugahuga", sep = "") dat %>% ggplot(aes(var.name)) + geom_point() # error dat %>% ggplot(aes_string(var.name)) + geom_point() # OK

行政区域データをbigqueryに入れる

分析のために行政区域データと緯度経度があるcsvファイルを空間結合したかった。 頼みのQGISはローカルだとおそすぎて無理。 こうなると空間データ対応のbigquery一択になる。 geojson対応だということでそのまま突っ込んでみるが、フォーマットエラー。 中…

data.frameの値を変更する

R

pandasでいうところの replace dataframe %>% mutate(recode(col, old_value = "new_value"))

tidyverseのインストールでハマった(ubuntu)

R

エラーはこんな感じ ERROR: configuration failed for package ‘curl’ * removing ‘/home/ubuntu/R/x86_64-pc-linux-gnu-library/3.4/curl’ Warning in install.packages : installation of package ‘curl’ had non-zero exit status libcurl4-openssl-dev,s…

グラフ上の任意の場所に文字列を入れる annotate

dat %>% ggplot(aes(x,y)) + gem_line() + annotate("text", x = 1, y=1, label="hoge") x,yはグラフ上の値

AERが入らない

AERパッケージを入れようとしたら入らなかった。 エラーメッセージを読めばわかることだが、libcurl4-openssl-devがないため、AERと依存関係のあるcurlパッケージが入らないのが理由だった。 ターミナルでこれでおk。 sudo apt-get install libcurl4-openss…

雑感2

グローバル変数が危険すぎる。 特にRStudioだと雑になりがちなので、実行前に必ずクリーンアップする。 3時間程度溶かしてしまった。。

R 図の一部を拡大して表示する coord_cartesian

R

ggplot(aes(x, y)) + geom_bar() + coord_cartesian(xlim=c(0,30), ylim = c(0, 0.02)) みたいな感じでつけるだけ。geom_smooth()使うときフィットのデータは全体使いたいけど見せるのは一部みたいなことがあり重宝する

新しいggmapの使い方

Rのggmapには2種類ある。 Rstudioでインストールすると入ってくるCRANのggmapとdkahle氏の新しいggmapだ。googleのstatic maps APIが仕様変更*1をしていることもあり、google mapsをバックエンドに使うのであればdkahle氏版の方を使うのが必須である。insta…

hiraginoでR Markdown

R Mac

R Markdownでhtml出力するときは簡単なのだが、pdf出力が結構大変。普通にyamlに以下のように書いても日本語部分が自動で折返されなかったりしてうまくいかない。 title: "Test" author: "hogehoge" date: "2018/7/17" output: pdf_document: latex_engine: …

AWS上でRStudioを動かす

R AWS

環境 Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-1061-aws x86_64) Rのインストール 普通にapt-getすると古いやつが入る。Rの公式 The Comprehensive R Archive Network に書いている通り/etc/apt/sources.listにdeb https://cloud.r-project.org/bin/linux/ubunt…

RPostgres

R

RPostgresを使って見た。 非常に簡単。 注意点としては、そのままxgboostに読ませるためにはデータ型を変換する必要がある場合がある。postgresからInteger64とかで入ってきたデータで推計するとNaNになる。as.numericしてあげれば問題ない。

xgb.plot.treeが描けない

R

今日はR。 xgboostパッケージのxgb.trainで学習させた後は、xgb.plot.treeで決定木/回帰木を描いて見るのが有用であるが、現行のパッケージだと変なふうになってしまう。 R version 3.4.2 (2017-09-28) -- "Short Summer" rstudio Version 1.1.419 具体的に…

極力loopを使わない方法、kroneckerと条件式をつかったリファクタリング

R R

例えば、労働者のある時点の給与w_tをもとにその労働者の給与の履歴{w_s}s=0,..,t-1を計算したいとする。履歴は、観察可能な給与にある定数をかけるとでてくるとする。 w_s = w_t*r[s] しかしながらこのrが労働者の教育に依存するとすると、場合分けが必要と…

条件に当てはまる観測を数える

Rの場合 nrow(subset(x, 条件))STATAの場合 sum if 条件; scalar a = r(N) STATAはちょっとめんどくさい

Hausman検定

R R

パッケージはplm。 phtest(formula, data, model = c("within"), "random") でOK. 結果をオブジェクトに格納すればカイ二乗統計量とPバリューが得られる。

基本統計量

R

経済学のペーパーでは回帰分析等の前に基本統計量(Summary Statistics, Descriptive Statistics)の表を乗っけるのがお約束。 Stataだとsumで一発だが、Rのsummaryは使えない。 library{psych}の{describe}が使える。 これをデータフレームに流し込んで好き…

VGAMとAERの干渉について

R

パッケージVGAMを使った後にAERを使うとエラーが出る。 例えば、vglm{VGAM}をやった後にtobit{AER}を走らせると変なエラー(unused arguments)が出る。 どちらも同じような機能があるだけにあまり問題はないかとは思うが。

Goodness-of-fitの取り出し方

R

lmの場合、summary(fit)$r.sqで決定係数、summary(fit)$adj.rで修正済み決定係数。観察数はnobs(fit)。 glmの場合、summary(fit)["null.deviance"]でNull Deviance、summary(fit)["deviance"]でResidual Deviance これとcreateTexregを合わせると相当自由に…

交差検定

R

英:Cross-validation パッケージcvToolsが使える。 線形モデルの場合、 library("cvTools") fit cv y = fit$model["y"], cost = mspe, K = nrow(fit$model)) これでone-leave-out cross-validationができる。 Kに他の数字を入れるとk-fold cross-validation…

R+EXCEL

R

データビューワーが貧弱なRの補完はエクセルが一番じゃないだろうか。 いちいち面倒だが、write.csvでデータを書き出して眺めるといろいろ捗る。

merge関数とうまく付き合う

R

merge関数は、2つのデータセットをくっつけるという頻発する作業に使えるので重宝するが、結構怖い関数でもある。 というのも、何も考えずにデータx,yをmerge(x,y)で統合しようとすると暴走してPCが止まったりする。 これを防ぐには、きちんと引数by=""を指…

factorをifelseで扱う

R

factorはifelseが使えない。 as.numeric関数を使うと、factorがnumericになってifelseが使えるようになる。

STATAの長所

Rに比べると柔軟性に欠け、ユーザの数も少ないためネット上のレファレンスが少ないSTATAだが、唯一素晴らしいと思えるのが、データビューワーだ。Rのデータビューワー(View)ははっきり行ってゴミである。1000☓1000しか表示できないし、(エクセル…

pglmの推定値、誤差

R

resultに推定結果を返す result summary(result)$est[,1] 推定値 summary(result)$est[,2] 誤差

文字色をかえる

\alert{文字}

大きな表をビーマーに突っ込む

でかい表をプレゼンで使うのは禁じ手だが、どうしても一枚にしたいときは、\resizeboxを使う。 必要な環境は、\usepackage{graphix} tabularを挟む \resizebox{3.5cm}{!}{ \begin{tabular} ... \end{tabular} } って感じ。{3.5cm}の部分を大きくしたり小さく…

2SLS

R

AERパッケージのivregとsemパッケージのtslsで簡単にできる。texregが使える分AERが上か。