cucumber flesh

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

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

探索的なデータ分析 (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 植…