2016-01-01から1年間の記事一覧

またおまえかtibble

従来の集計処理をdplyrに置き換えていく中でこういうエラーが出た。 Error in function_list[[k]](value) : (list) object cannot be coerced to type 'double' これまでは問題なく集計処理できていたのにdplyrを使った途端このエラーである。 問題を突き止…

岡村靖幸のWikipedia記事から人名を抽出する

最近スクレイピングしてないので素振りをすることにした。 今回は岡村靖幸のWikipedia記事内の経歴の項目における人名を抽出して眺めてみたい。 以下の流れで進める。1. ページを眺めて、スクレイピングの対象とする文章が埋め込まれている場所を特定する。 …

XLConnectにtblクラスのデータをつっこむとエラーになるから注意

XLConnectにdplyr等で操作した後のtblクラスのデータをつっこむとエラーが出る。 たとえば以下のようなコードを実行する。 smp <- loadWorkbook("sample.xlsx", create=TRUE) smp["サンプル"] <- iris %>% group_by(Species) %>% tally() こういうエラーが出…

Google Cloud Vision APIを使ってAKBのデータを把握する

R

こんな話がある。兼子毅(2015)『ゼロから始めるRー四則演算から多変量解析まで』日科技連は、サンプルデータの公開をしていないのかな?? AKB48の年齢と身長のデータとか、手で全部打つの辛い。。。一発で変換できなさそうな名前も多いし。。。 pic.twitt…

plotlyで複数の図を並べて描く

R

plotlyで複数の図を並べて描くときはsubplot関数を用いる。 subplotというキーワードさえ覚えておけばあとは検索するといくらでも例が出てくる。 library("ggplot2") library("plotly") g <- ggplot(economics, aes(x = date, y = uempmed)) + geom_line() p…

Rのplotのグラフィックパラメータの「略称」一覧

R

Rのplotのグラフィックパラメータは覚えにくい。 しかしそれぞれの略称が何を示しているかわかれば多少は覚えやすくなる。 これをPaul Murrellがまとめてくれている。 https://www.stat.auckland.ac.nz/~paul/R/parMemnonics.html ほんとはこれヘルプに掲載…

Shinyで日本語を使うとTRUE/FALSEが必要なところが欠損値です

R

以下のように日本語を使うと「TRUE/FALSEが必要なところが欠損値です」というエラーが出てレンダリングされない。 selectInput('value1', '値', 90:100) とりあえず英字のラベルにすれば問題ない。 Windowsで開発してCentOSのShiny Serverに上げているのが問…

Rでリファラを設定してコンテンツを取得する

R

curlとかwgetだと一行だろうけどRでやりたい。 リファラでアクセス制限をかけている場合のPDFコンテンツの取得の一例を以下に示す。 add_headersでリファラを設定してGETした後、バイナリデータとして書き出せば良い。 library("httr") u <- "目的とするURL"…

Shiny-serverでflexdashboardを動かす

R

Shiny-serverでflexdashboardをデプローイする方法がわからなかったのでメモ。 通常は以下のサイトでも解説されているようにui.Rとserver.Rを所定の場所に設置しておけば、 http://IPアドレス:3838/ディレクトリ名 という形でアクセスできる。 http://estrel…

shinyで待ち時間にメッセージを表示する

R

withProgressが手っ取り早い。 messageにメッセージを指定して、その後に待ち時間が発生する処理をブロックで指定する。 renderText({ withProgress(message = '計算中', { input$hoge }) }) 参照クラスのProgressを用いるという方法もあるらしい。 http://s…

[R]flexdashboardをshinyアプリとしてレンダリングする時はrun

flexdashboardをshinyアプリとしてレンダリングする時はrenderじゃなくてrun。 flexdashboard::flexdashboard()のexampleにはhtmlにレンダリングする例が載っているので間違えがち。 rmarkdown::run("dashboard.Rmd")ちなみにうっかりrenderすると、以下のよ…

paste0関数の挙動

R

こんな話がある。paste0("aiueo", 1, 2, sep = "=", collapse = "&")[1] "aiueo12=" #へんなのR— Shinya Uryu (@u_ribo) August 18, 2016 結論からいえば、三連ドット(...)で引数を受ける+引数のチェックを明示的に行わなかった結果だと思われる。 原因を…

10進数を2進数に変換する

R

なるべく組み込み関数で処理したい。intToBits関数を使うのが良さそう。 以下は16桁の2進数で表現している。 > paste(rev(as.integer(intToBits(10739))[1:16]), collapse="") [1] "0010100111110011"

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

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も以下のような描くた…