2019-02-01から1ヶ月間の記事一覧

いまどきの固定長データはread_fwf()を用いて読み込む

こんな感じのデータがあったとする。 library(readr) fwf_sample <- readr_example("fwf-sample.txt") cat(read_lines(fwf_sample)) John Smith WA 418-Y11-4111 Mary Hartford CA 319-Z19-4341 Evan Nolan IL 219-532-c301 いわゆる固定長データであり、バ…

数字をアルファベットに変換したい時はchartr()を使う

数字をアルファベットに変換したい、もしくはその逆でアルファベットを数字に変換したいというときがたまにあります。 例えば、11, 12, 13 をAA, AB, ACに変換したいという時です。 こういう時はRではchartr()を利用します。 chartr("123456789", "ABCDEFGHI…

折れ線グラフで各系列にラベルをつける際はgghighlightを用いるのが楽なんじゃなかろうか

こういうデータがあるとする。 library(dplyr) library(ggplot2) library(gghighlight) ChickWeight_diet <- ChickWeight %>% group_by(Diet, Time) %>% summarise(weight = mean(weight)) > ChickWeight_diet # A tibble: 48 x 3 # Groups: Diet [?] Diet T…

Rで時刻の差をとるときは単位を指定する癖をつける(もしくはlubridate::time_length()を用いる)

時刻を入れたデータフレームがあるとする。 > smp <- data.frame(now=Sys.time(), then=Sys.time()-60) > smp now then 1 2019-02-09 10:30:15 2019-02-09 10:29:15 で、時刻の差を計算すると、そこに単位も含まれてくる。 > smp$diff <- with(smp, now - th…

ggplot2で複数の因子によるグループで折れ線プロット

各因子を結合した列を追加すればいいっちゃいいのだが、ggplot2上で指定する方法もあったよなと思いながら思い出せなかった+ググりづらかったのでこれも備忘。interaction()を使う。 library(ggplot2) library(dplyr) # ChickWeightデータで初回の体重が43以…

R関係備忘録

最近本当に忘れっぽい。 Rのパッケージ名なんて、イメージは浮かぶものの正確な名称が思い出せない。 ふわっとググるんだけど当然出てこない。 仕方なく、よく見かけるブログの記事を総当たりしてやっと見つかることもままある。 ということでここにメモして…

RでRuleFitを実行できるパッケージpr

アンサンブル学習は便利だ。 randomForestなりLigthGBMなりXGBoostなり、適当にデータを突っ込んでもそれなりの予測モデルが得られる。 feature importanceという形でどの特徴量が予測に効いているかもわかる。 しかし、どこのセグメントが最も効果的かまで…

本日の懺悔:dplyrでsliceをもっと活用しようね

懺悔です。 今まで私はある列の最小値を含む行を抽出する際、filter()を用いて以下のように書いていました。 library(dplyr) iris %>% filter(Sepal.Length == min(Sepal.Length)) しかしbaseの書き方であればwhich.min()を使って以下のように書けます。 iri…