まだ厨二病

RとPyhtonを使ったデータ分析・統計解析らへんの話題をしていくだけ

見えないRの関数のソースコードを読む

要約 lookupパッケージで標準の関数定義ソースコードの出力機能を改善する 総称関数や.C(), .Internal()などの関数で呼び出されるコードも出力 prettycodeパッケージで関数定義のハイライトを有効にする prettycodeはRの起動時に読み込み、lookupは適宜、名…

データフレームの特徴をもっと早く掴みたい ~ ハドリーへの挑戦

探索的なデータ分析 (Explore Data Analysis: EDA)を行う際は、データの要約や欠損の有無の確認、可視化が欠かせない作業となります。 特に可視化は、データのもつ性質や関係を表現するのに大変役立ちます。一方で、可視化に用いた図はコードとは別に保存す…

RStudioを使ってKaggleコンペティションをやっていくためのプロジェクトテンプレートを作っています

はじめに注意書きですが、この記事で書かれているプロジェクトテンプレート機能は、今日現在、開発版のRStudioを利用したものです。厳密には、実行のためにはv1.1.28以上である必要があります。おそらく次の安定版には盛り込まれる機能であると思うので、し…

Rおじさん、Pythonistaになる

こちらをご覧ください。踏み絵ではありません。R上で地理空間データを扱うPythonモジュール、geopandasによる作図を行なっている画面です。 え、RでPythonを!?と驚かれる方もいるかもしれませんが、reticulateというRパッケージを使うことで、ほぼストレスフ…

データフレームの変数を正しく扱うためにreadr::type_convert関数やreadr::parse関数群を使う

Rをやっていると時々、データ型の違いによる関数実行の失敗や不正確な結果の出力が起こる。errorで処理が停止したりwarningで間違っていることがわかると良いのだけど、間違ったデータ型で処理が通ってしまって、結果を見て「あれへんだな」ということがある…

Kaggleでも利用されている高圧縮ファイル形式7zをRで解凍する

たまたまKaggleのDatasetsをのぞいていたのだが、そこで.7zという見慣れない形式のファイルが提供されていた。容量はテスト用のファイルで1GBを超えている。大きい…。ダウンロードするにも時間がかかるのだけど、それよりも問題だったのは、この.7z圧縮ファ…

すっからかん(欠損値しかない)の列を削除して完全データにしたい

【20170518 追記】 あーだこーだしているが、ゆた兄さんに教えてもらった方法を使った方が楽チン。 @u_ribo ちがった、_at()じゃなくて_if()でよかったのでした! 存在を忘れてた。df.list %>% select_if(function(x) VIM::countNA(x) < 1)— Hiroaki Yutani …

【小ネタ】リストにNULLがある場合のpurrr::map系関数の挙動

タイトルが適切かわからないが、小ネタ。次のようなリストオブジェクトがあるとする。リストに含まれる要素はname, age, genderの値をもっているが、2番目の要素はgenderがない、というようなもの。 library(purrr) x <- list(list(name = "A", age = 23L, g…

estatapiパッケージで読み込めないデータの取得を諦めない

先日、estatapiパッケージを使って政府統計の総合窓口 e-statが提供する統計データの取得を行おうとしました。 library(tidyverse) library(estatapi) df.list <- estat_getDataCatalog(appId = Sys.getenv("ESTAT_TOKEN"), searchWord = "自然公園") df.tgt …

readxlパッケージ 1.0.0の主要な変更点

先日、エクセルファイルのデータをRに読み込ませるパッケージのreadxlパッケージの1.0.0がCRANに登録されました。 実はしばらく更新を追えていなくて、色々な新機能があったのでメモしておきます。まとめると以下の通りです。気になった点を挙げていますので…

日本の人口密度を可視化する: population lines

少し前(4月下旬ごろ?)に、redditで人口密度の高さを表現した地図が話題になりました。 www.reddit.com この地図は、James Cheshire博士 (@spatialanalysis)が2014年に投稿した “Population Lines Print” が元となっていて、再現性のあるRコード、ヨーロッパ…

日付から曜日を取得する関数と日本語表記の対応

日付から曜日を取得する関数としてlubridate::wday() (days of the week)をよく使う。この関数は曜日を与えて実行し、デフォルトでは数値化した値(日曜日を起点 1とした1から7までの値)を返すが、label引数を有効化することで曜日のラベルが得られる。また省…

Microsoft Cognitive Service Face APIにローカル上の画像を投げる

dichikaさんのMicrosoft Cognitive Serviceを使った記事、APIに投げる画像はサーバ上にある必要がある、ということだが、リクエストボディのContent-Typeでapplication/octet-streamを指定することでローカルファイルをサーバを経由せずに直接投げることがで…

leafletでベースタイルを表示させずにポリゴンだけを表示する方法と投影法を変更する方法

先日行われたGlobal Tokyo.Rにてleafletについて発表してきました。発表後、ドイツからの参加者 @henningsway から質問をもらいました。それがタイトルの内容です。ちょっと焦っていたので、いや多分無理、みたいな回答になってしまいましたが、落ち着いてや…

leafletで描画した地図を画像ファイルとして保存する

お手軽に地図データを表示するために{leaflet}を頻繁に利用しているが、出力した地図を画像に保存するにはOSのスクリーンショット機能やアプリケーションを使う必要があって面倒だった。 調べてみると{mapview}パッケージに{leaflet}のレンダリング結果を保…

「Rによるスクレイピング入門」を執筆しました

タイトルの通り、執筆に関わった書籍が出版されたので内容紹介と宣伝です。 Rによるスクレイピング入門作者: 石田基広,市川太祐,瓜生真也,湯谷啓明出版社/メーカー: シーアンドアール研究所発売日: 2017/03/27メディア: 単行本(ソフトカバー)この商品を含…

ODBCで取得したデータの文字化けを解決する

ODBCは良い。古事記には書かれていないかもしれないが、ホクソエムがそう言っている(意訳)。 qiita.com odbc が CRAN に!https://t.co/hJHhJbeh4Q— 門限のあるフレンズ (@hoxo_m) 2017年2月6日 最近になってR用のODBIインターフェイスである{odbc}パッケ…

RMarkdownファイルの中でSQLを実行する際のtips ~knitr language engine

公式ページに書いている内容なのだけど、覚え書き。 RMarkdownファイルでSQLを実行させるという状況があったとき、{DBI}や{odbc} といった各種のデータベース接続用パッケージや{dplyr}の接続関数を利用してデータを呼び出しても良いけど、実はチャンクコー…

2017年のRとの付き合い方: 分析環境編

R

ギョームでRを使い始めてから一年経っていないのだけど、それなりにスタイルが確立してきた気がするし、新年なので、現状で理想的だと思われる分析環境を整理しておく。ちなみに私のギョームは主にデータの前処理や地理空間データのマッピング、簡易アプリケ…

Rの話をしよう(深く、緩く、熱く)

R

先日開催されたTokyo.R#58でこんな話をした。 Rについて話すラジオ、正しくはPodcastをやりたい。 それについて経緯と詳細を書いてみる。 背景 プログラミングやデータ分析なんかは、基本的に孤独な作業なのかもしれない。しかし時々自分のやったことの評価…

Rmdファイルで日報を書くためのタイムスタンプアドインを書いた

作ったというほど大したものではないが、RStudioアドインの普及のために書いておく。 へーしゃのエンジニアチームでは毎日やったことやぎょーむ進捗を「日報」としてSlackにあげることになっている。そこで自分は1日の終わりに今日1日の作業を思い出すのは辛…

⚡️関数の実行結果を知らせる関数(パッケージ)を作っています

source()でガーッとコードを実行させる時やforeach::foreach()などでループ処理をする時、モデリングのような処理に時間のかかる関数を実行すると、終わったかな、まだやっているかなとチラチラとコンソールを確認するのが結構面倒臭い。せっかちなので頻繁…

Rで植生図を描画する

植生図というものがあります。利用目的に応じた特定の項目(主題)を表現した主題図の一つです。、主題図には他に人口の内訳とか土地利用図などがあります。植生図は植生、すなわち、ある地域に生育する植物集団の特徴を地図上に表現したものと思ってもらっ…

⭐️Rを使ったモデル構築の最善策を求めて: {dplyr} + {tidyr} + {broom} + {purrr}を使ったアプローチ

RStudioのチーフサイエンティスト、Hadley Wickham(ハドリー)が2月に行った講演のビデオがYouTubeに上がっていたので観た。 "Making Data Analysis Easier"というタイトルでの発表(スライドでは"Managing many models"になっているけど)で、ハドリー自身…

⭐️RでJSONパーサーのjqを使って快適なAPI暮らしを

jqというC言語で書かれた軽量のJSONパーサー(コンピュータが読みやすい表示になっているものを人間でも見やすくする感じのもの)の一種であるjqの機能をRに導入した{jqr}パッケージを試したのでメモ。 本家のjqでできることはだいたいできる(対応している…

🍭hoxom task view (ホクソエム一周年記念)

タイトルの通り、匿名知的集団「ホクソエム」が結成されてから一年経つっぽい(ぽいというのは結成された日付が曖昧だから)。 よく一年もこのノリを続けてきたなと思うところもあるが、「ホクソエムの誓い」とか現実でホクソエムに遭遇した体験とか、謎の帰…

📢アサートを使って堅牢なデータ設計をしよう

所感 (内容の前に書いておきます) パイプ演算子によって、Rを使ったデータ分析の作業は流れるようにわかりやすく、実行しやすくなりました。その一方で、中間的処理の結果に対してはないがしろになっているという点があります。この処理で間違えていない…

🔧RでREST APIを作る(plumber編)

様々なAPIを利用していると、次第に自分でもAPIを作りたくなりませんか? Rの関数を利用してHTTP経由でデータの受け渡しができると嬉しいですよね。加えて、Rの作図機能を使って、APIを叩くだけで作図してくれると超ハッピーですよね。 前置きも何もなく唐突…

🍭knitrでSQLの実行結果を出力する際はengine.optsを指定する

Rによるレポート作成で用いられる{knitr}パッケージでは、RだけでなくbashやPython、SASと言った多様な言語の実行を可能にしている。RMarkdownのチャンクとして呼び出すわけだけど、MySQLをエンジンにした場合にちょっと躓いた(これをやる機会はなかなかな…

⭐️PDFの情報・文章をRでごっそり取得する

便利なRパッケージを見つけたのでメモがてら紹介しておきます。以前、Rを使ってPDF上のテキストを取得するパッケージとして{tm}パッケージを紹介しましたが、同様の機能をもった{pdftools}は以下の特徴があります。 PDFがもつ各種の情報やテキストを取得でき…

🌱Google Cloud Vision API で生物の同定は可能?

機械学習ベースで画像認識・分類を行うGoogle Cloud Vision APIをR上で利用するコードをdichikaさんが書いてくれたので、それを使って手持ちの写真からいろいろな分類群の生物(主に植物)を同定することが可能なのかを検証してみたい。 d.hatena.ne.jp 植…

🍭ホクソエムのつながりをNeo4Jを使って確かめる

先日、Neo4Jというオープンソースで開発されるグラフデータベースの存在を知りました。恥ずかしながら、グラフデータベース?なにそれ美味しいの?という知識しかありませんでしたが、どうやらNoSQL(リレーショナルデータベースだけがデータベースではない…

📈企業内で利用されるサービス・ツールのアソシエーション分析

先日、ビジネスSNSとして有名なWantedlyが、企業に対して利用しているサービスやツールについての調査を行った結果をcompany toolsとして公開しました。 www.wantedly.com このページでは9つのカテゴリーについて、Wantedlyに登録されているすべての企業で…

💮Moves + Rで行う行動データの可視化

私の趣味の一つにお気に入りユーザーのネットストーキングがあります。ネットストーキングをしている、というのを公言するとウケが良くないことは経験上明らかなので、ひとまず自分をストーキングしてみたい(というのを今年の目標の一つにしています)。今…

🍭 インタラクティブな認証が必要な関数の処理を魔改造してR Markdownでも実行可能にする

ウェブAPIのラッパーパッケージを利用する際に{httr}パッケージは認証に必要な関数を備えており、これらのラッパーパッケージにおいては主な手法として利用されている。その理由として、{httr}パッケージが認証処理を実行する関数を備えていることがあげられ…

🍵「R言語徹底解説」のサポート対応が良過ぎる件

昨日書いた「R言語徹底解説」の記事、たくさんのブックマーク、ツイッターでのつぶやきなどありがとうございます。少しでも購入の参考、後押しとなれば幸いです。 さて、突然ですがこちらの画像をご覧ください(⚠️注意: 一部にタツジン級のゼン・モンドーが…

📘 R言語徹底解説(原著: Advanced R)を読んだ

前置き 有難いことに去年は著者や関係の方から何冊かの本(じゃんけん大会での獲得を含む)をいただいておきながら、ついったー上でしか報告(宣伝?)できていなかったので今年はブログにも書くことにする(みなさまからの献本、お待ちしております)。 今…

🔧Rパッケージ開発時に利用するデータの種類とその使い分け

昨日、Rコミュニティの質問広場兼お気楽な交流の場であるr-wakalangでこんな質問が寄せられた。 (意訳) パッケージの開発時にオブジェクトを保存しておいて、そのオブジェクトをパッケージ内の関数で利用したい パッと思いつく回答として、data/ディレクトリ…

🌎全球規模での気候データをRからサクッと得たい(可視化もするよ)

昨日書いた記事で使ったRパッケージの{rWBclimate}、これは良いものだ、と思えたので別途こうして使い方をメモしておく。 近い将来に予測される大規模な気候変動や乾燥化などを扱った論文が増えているように、気象・気候データは各種の研究やデータ解析にお…

📈統計的問題を回避するためのデータ解析のプロトコル (Zuur et al. 2010): 8 説明したい変数は独立と言えるのか?

この記事では統計的問題を回避するためのデータ解析のプロトコル (Zuur et al. 2010)で扱われている目的変数の独立性について議論する。 uribo.hatenablog.com データ解析時における統計的手法の多くは、観測されたデータが他と独立であることを仮定している…

💮Rから気になるあの子に質問したい

ask.fmに投稿するパッケージがそろそろ@u_ribo から発表される頃か— 友利奈緒 (@dichika) January 25, 2016 最近のR界隈ではAsk.Fmというウェブサービスが流行っています。こちらのサービスはいわゆる質問系のウェブサービスで、ユーザー間で質問のやり取り…

⚙API暮らし時代におけるRでの環境変数の管理

先週はセキュリティ関係の記事をよく見かけた...気がした。これとか。 qiita.com RでもウェブAPIを利用するパッケージが増えてきて( {RGA}, {slackr}, {twitteR}, {qiitar}などなど)、誰もがAPI暮らしを夢見ている。 そんなわけでAPI生活の質を高めるため…

📦RStudioでの作業状況を自動で記録するWakaTimeプラグインを作成しました

日々ギョウムやケンキューに追われる皆さん、進捗どうですか。進捗、可視化できると楽しいですし仕事に対する意欲を高めるために良いですよね。そんなことを可能にするWakaTime というウェブサービスがあります。WakaTimeでは普段コーディングなどで使用して…

⭐階層構造になっているファイル(XML, JSON)をRで見やすく表示する

ウェブAPIやオープンデータとして公開されているリソースの提供形式としてXMLやJSONが利用されることが多い。RでXMLやJSONなどの構造式のファイルを読み込むことは簡単だが、だいたいのパッケージで読み込んだオブジェクトはリストになっている。リストクラ…

🐣esa.ioをもっと好きになるためにesa.ioのAPIをRで使えるようにする

昨年の11月からesa.ioのアカウントを作って、チームではなくて個人の作業メモとして使っていた。といっても最初の1週間でほとんど使わなくなってしまい、2ヶ月の無料試用の期限が近づいてきてしまった。さてこのままフリートライアルでやめてしまうのもも…

⭐️Rで絵文字の正規表現パターン

前から気になっていたのだが、ついカッとなって少し調べてみたら深みにはまってしまった。Rで絵文字の正規表現を実行する方法を整理してみる。 マッチするパターン grep(pattern = "\xF0\x9F\x98\x81", "") ## [1] 1 grep(pattern = "\U0001f601", x = "絵…

🍭.Last.valueの話: 保存して欲しければまずは結果を見せな

Rでパイプ処理をしていると、「あ、今の結果をオブジェクトに保存しとけば良かった...。もう一回実行するのメンドクセ」、ということがしばしばある。 そんな時は直前の処理をやり直す必要はなくて、.Last.valueを使って対処することもできる。???。以下…

📦Rのヘルプドキュメントに画像を表示して夢を広げる

去年にこんな記事を見つけて、オオコレハカッキテキダ、みたいな印象を持ったきりでそのまま放置していたのでチラシの裏としてメモ。 blog.revolutionanalytics.com パッケージのヘルプドキュメントに画像を表示させる方法、以前からできたらしいが(R バー…

⭐️RでGitHubの活動(芝生)を出力する

最近流行り(?)のGitHubでの活動を表す「芝生」をRで表示する方法。 blog.a-know.me 実は自作パッケージの {motivator}に実装されている(一年間放置していたのでちょっと手を入れ直した)。 実行すると次のように、GitHubの芝っぽいものが描画される。 # …

💮【簡易版】RからGoogle Books APIを叩いてブクログに書籍登録する

読んだり買ったりした本の記録をEvernoteにとっているのだけど、きちんとしたサービスを使うか、という気になってブクログを選んだ。しばらく使ってみて思ったのだが、キーワードから本を探して「本棚」に登録するという過程をとるのが面倒。ちまちま入力し…