メモリに乗らないデータを分割して読み込んでくれるパッケージ

R

最近readrパッケージが1.0になった。 https://blog.rstudio.org/2016/08/05/readr-1-0-0/ この中で「実験的だが」という断りつきでread_csv_chunked関数が最後に紹介されている。 メモリに乗らないようなデータを分割して読み込むことができる。 baseのread.…

Jupyter notebook のnbextensionsを入れようとしたらうまくいかなかったのでAnaconda Extensionsを入れた話

Anaconda経由で入れたjupyter notebookのnbextensionを使いたい。 特に、見出しをtocでまとめてくれる"Table of Contents (2)"を使いたい。 しかし以下のようなメッセージが出て、http://localhost:8888/nbextensions/ にアクセスできない。 "Config option …

cell magicとline magic

Jupyter notebookというかIPythonのrmagicを使ってて、%Rと%%Rの違いがわからなかったので調べた。 %という表記の問題でやたらググりにくいのでメモしておく。 結論から言うと、%1つだとline magic、%%2つだとcell magicである。 magic function IPythonには…

歩数データから行動パターンを抽出する話

この1年ほどfitbitで歩数データを取り続けている。 最近、歩数データは1日よりも小さい単位(1分、15分)で取得できることを知ったので、それを利用して日々の行動をパターン化したい。 同時に手持ちの睡眠データと組み合わせて、行動パターンとの関連も見た…

テロップをつけた画像に落書きする

R

以前captionパッケージを使ってテロップを自動で画像につける話をした。 しかしこういった画像を見ているとどうしても落書きしたくなる。 ペイントソフトを開いて落書きしてもいいのだがここはシームレスにRからやりたい。 ということでrakugaki関数をcaptio…

いい感じの時系列プロット

R

dygraphsパッケージのことである。 えっ、いまさらdygraphs?ナンデ?と思われる向きもあるだろうが、最近、私の記憶がやばい。 昔は記憶に雑なクエリ(例:Rでいい感じに時系列プロットかけるパッケージ)を投げても、最適な結果がスッとでてきたのが最近は無…

ggplot2でgeom_lineする時にNAを無視して線をつなぐ

R

geom_lineするとき、NAが入っているとそこで線が途切れてしまう。 library("ggplot2") smp <- data.frame(x = 1:5, y = c(1:3, NA, 5)) ggplot(smp, aes(x = x, y = y, group = 1)) + geom_line() + geom_point() あらかじめNAを除いておけば、線をつないで…

Rで自動的に画像にテロップをつける

R

昨日の続き。 これを自動でやりたい。 http://togetter.com/li/931610 ということで関数を追加した。 ついでにフォントを変更できるようにした。 下記コードでoutputという名前で画像が出力できる。 ちなみにこの画像はGoogle様がこのように判定したのであり…

[R]Rで画像にテロップをつける

こういう話がある。 http://memo.sanographix.net/post/140968243125 同じようにRでさっとテロップをつけたいのだが見つけきれなかったので作った。 こんな感じでテロップをつけられる。 # インストール install_github("dichika/caption") library(caption)…

meanとmean.defaultどちらが速いか問題

R

以下の結果でどちらが速いかちょっと考えてみてほしい。 > library("microbenchmark") > microbenchmark(mean(iris$Sepal.Length), mean.default(iris$Sepal.Length)) 結果はこちら。mean.defaultの方が速い。 Unit: microseconds expr min lq mean median u…

tweedie分布のメモ

R

tweedie分布を使ったモデリングについては以下のRevolutionsのブログや「Rで学ぶデータサイエンス10 一般化線形モデル」、twitterなどで見かけて気になっている。 http://blog.revolutionanalytics.com/2014/10/a-note-on-tweedie.html tweedie分布とは twee…

Google Cloud Vision APIを使ってレシートの不健康度を色で表現する

R

これをやりたい。文化によって違う色になりそうだな/スーパーで買ったものの栄養データを色で視覚的に表示するレシート https://t.co/t0XlOZ3Gh2— 機械の体を手に入れるのよ鉄郎 (@tetsuroito) 2016年2月24日 レシートはこの間の飲み会のこれ。 これにGoogle…

randomForestのエラーメッセージに惑わされた話

R

素のrandomForestなんて最近は使うこともなくもっぱらcaretからrangerを使っていたのだが、partial dependence plotを使いたかったので久しぶりに触ったらエラーに悩まされたのでメモ。 件のメッセージはこれ。 randomForest.default(m, y, ...) でエラー: …

RからGoogle Cloud Vision APIを使う

R

Google Cloud Vision APIが高性能らしいので使いたいのだが私はRしか使えないのでRから使う。 とりあえず手持ちのこの画像のOCRをしたい。 前準備としてAPIキーの取得などがあるので以下を参考にされたし。 http://qiita.com/takaheraw@github/items/e2d8ac9…

カーネル密度推定とヒートマップ

R

サーモグラフィみたいなヒートマップをggplot2で描きたい。 たとえば以下のirisデータのプロット。 ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+ geom_point(color = "black") 点が密集しているところを赤く、薄いところを緑で塗りたい。 こうい…

R言語徹底解説が届いたので誤植を探す

R

訳者から本をいただきました!ありがとうございます! 表紙、裏表紙に燦然と輝くエラーメッセージ、警告メッセージが目に突き刺さりますね! 本文をざっと読んで印象に残った一文はP116のこちらです。 問題を引き起こすのはRではなく、むしろユーザの側だろ…

RでfitbitとJawboneから睡眠データを取得する

R

流れでfitbit HR chargeとJawbone UP3を入手できたので、各デバイスで取得した睡眠データを比較したい。 今回はまずデータを取得するところまで。 ターゲットとするデータ fitbitは以下のような図を描くためのデータが欲しい。 Jawboneも以下のような描くた…

睡眠データを眺めて効率的な睡眠を模索する

R

自分の睡眠データを把握したい。 とはいえ睡眠を定量化するポリソムノグラフィは一般のご家庭には無い。 ということで代わりに手持ちのSony Smartband2を用いて測定した。*1 結果 結果のスクリーンショットを以下に示す。1/18(月)から1/22(金)までの5日…

なぜクソ仕様が生まれたのか

ひとりアドベントカレンダー24日目。 Rだとこんなことができる。 > "ggplot2" <- "dplyr" > ggplot2 [1] "dplyr" > "ggplot2" [1] "ggplot2" こんなことができるがゆえにHadley Wickhamなどはlibrary(ggplot2)と書かずにlibrary("ggplot2")と書くことを勧め…

Rのdeep copy問題の一部はずいぶん前に解決されていた

ひとりアドベントカレンダー23日目。 いつものようにAdvanced Rを読んでいると、次のような一節があった。 (あ、来月に翻訳が出ます。)R言語徹底解説作者: Hadley Wickham,石田基広,市川太祐,高柳慎一,福島真太朗出版社/メーカー: 共立出版発売日: 2016/02…

timecardパッケージをRStudioのアドインにした

ひとりアドベントカレンダー22日目。1億総シリパク(シリアルパッケージクリエーター)時代を迎え、自作パッケージを持っていないほうを見つける方が難しくなりました。 そんな自作パッケージの関数をRStudioのメニューからアドインの形で呼び出せるように…

大事なことなので何度でも言う

ひとりアドベントカレンダー21日目。 前処理などしてるとき、キーボードをッターン!!!!と叩きながら奇声をあげてテンションを高めている人は多いと思います。 個人の奇声に任せずにRの環境としてそれをサポートできないか。 そんな想いのもと、かつてpingsパ…

Rはコピーするという話

ひとりアドベントカレンダー20日目。 Rからプログラミングの世界に入った人は他言語で似たようなライブラリを扱った時に混乱する可能性がある。 たとえば以下の挙動はRユーザにとってはなんら不自然なものではない。 > x1 <- 0:9 > x2 <- x1[seq(0,9,by=2)] …

Rで寿司サイコロを作りたい

ひとりアドベントカレンダー19日目。 Rで寿司サイコロを作りたいとする。 sample関数を使って一旦寿司に格納すると以下のように値は固定されたままとなる。 で、固定されないようにする方法がありpryrパッケージの %

フォースの力に頼らない

ひとりアドベントカレンダー18日目。 Advanced RにもあるようにRは遅延評価を導入しているため、思ってたのんと違うわこれという動作がたまにある。 例えばlapply関数の挙動。 > add <- function(x) { + function(y) x + y + } > adders <- lapply(1:10, add…

juliaの特徴をRユーザの視点から眺める

juliaアドベントカレンダー17日目です。Rの仕様書を読む前に読んでおきたいAdvanced Rの翻訳が来月出るという話はもう16回くらいしてきた。R言語徹底解説作者: Hadley Wickham,石田基広,市川太祐,高柳慎一,福島真太朗出版社/メーカー: 共立出版発売日: 2016/…

reshape関数とtidyrの関係

ひとりアドベントカレンダー16日目。 こういうデータセットがあったとする。 > (smp <- data.frame(ID=rep(1:3, 2), + BMI=rep(c(21,26),3), + sbp=rep(c(150,120),3), + nendo=rep(2008:2009, 3) + ) + ) ID BMI sbp nendo 1 1 21 150 2008 2 2 26 120 2009…

[とsapplyには気をつける。

ひとりアドベントカレンダー15日目。 Rはよしなにデータを処理してくれるので、非常に使い勝手が良い。 その一方、よしなに処理しすぎてこちらが泣きをみることがある。 たとえば、Rで使わない人はいないであろう[関数。 data.frameクラスに適用される[.da…

Rでサダメトリクス

ひとりアドベントカレンダーおよびさだまさし×ITアドベントカレンダー14日目。 本記事ではサダメトリクスに取り組みます さだまさし×ITアドベントカレンダーは一見色物のようなタイトルでありながら非常にレベルの高いアドベントカレンダーです。 多くの人が…

do.call関数の使いみち

ひとりアドベントカレンダー13日目。 引数リストを関数に渡して実行したい時、そんな時にdo.call関数を使います。 do.call("mean", list(1:10, na.rm = TRUE)) 誤解されているようですが、このdo.call関数の第1引数は文字列でなくてもOKです。 # 上の例と同…