「Tsukuba.R#7」活動報告

5月9日(日)に、Rの勉強会「Tsukuba.R#7」が開催されました。

Tsukuba.Rは、奇数回を都内、偶数回をつくばで行うのが慣例となっており、第7回の今回は東京大学理学部での開催となりました。今回は初の試みとして、スピーカー12人全員が各10分のLT形式で発表するという「LT祭り」を行いました。Ustreamの録画とともに、各セッションの内容を簡単にご紹介します。

1.wakutekaさん「Beautiful woRld」

最初は今回の主催者の一人であるwakutekaによるBeautiful woRldです。Rに興味を持ったばかりの方やR初心者の方に向けて、Rの簡単な説明からその利用法、そしてRに関する様々なウェブリソースの紹介やその活用法について話しました。

初心者には取っ付きづらいこと、Rという単語そのものが検索しづらいこと、まだまだ利用者が多くないことなどを克服するため、R-Tipsなどの初心者向けサイトやRseekなどの検索エンジン、RjpwikiやTwitter(#rstatsj)などを用いた質問法などを紹介しています。

様々なウェブリソースを網羅した解説、およびそれぞれに合った活用方法など、これからRに取り組もうという方にとって非常に有用な内容になっています。特にTwitterを用いた気軽な質問はおすすめです。

2. yag_aysさん「Rを用いた解析の実例 - Project *ぶろったん」

物の名前や呼ばれ方は、時間の経過とともに変わっていくことがよくあります。そういった言葉の使われ方のトレンドを定量的に把握・可視化したいと思ったとき、Rはどのように使えるのでしょうか。

yag_aysの発表では、Rでのデータ処理に非常によく使われるread.csvやapplyなどの関数の紹介も交え、論文データベースから抽出した1900万件のデータを元に、実際の表記のされ方とトレンドに迫りました。

「ある情報を、数値化されたデータを使って定量的に把握・可視化したい」と思ったとき、⁠Rを使うと、驚くほどシステマティックに解析・可視化を行える」ことがわかる発表となっています。

3. Mozkさん「environmentとマクロもどき」

Mozkさんの発表は、Rにおいて変数名と値の対応を解決する上で重要な概念である「環境」についてです。

Rでは変数名と値の対応関係である「環境」そのものをベクトルなどと同様にオブジェクトとして扱うことができます。発表では、関数に結びつけられた環境をオブジェクトとして取得する方法、自前で環境を作成する方法、環境内の変数の値を参照したり書き換えたりする方法などを実際のコードと実行結果を示しながら解説していました。また、式そのものをオブジェクトとして扱ったり、それを評価したりする方法についても説明がありました。

環境や式をオブジェクトとしてうまく使うことで、より高度な変数の扱いができるようになります。発表の最後ではこれらを組み合わせた例として、C言語のマクロのようなものをRで作る方法についての紹介がありました。環境や式のオブジェクトを駆使して擬似的にswapマクロを実現しています。

普段Rを触る上で環境を意識するような状況はあまりないと思いますが、知っておくと特殊な変数参照をしたい時やデバッグなどに役立ちそうです。

ちなみに、この発表ではMozkさんがRを使って作成したHTTPサーバを使ってWebブラウザでスライドを表示させていました。本当はTsukuba.R#7でHTTPサーバの発表をしたかったとのことですが、完成度の都合上見送ったそうです。Mozkさんの次回の発表を期待して待ちましょう!

4. ikakura7188さん「『ggplot2の外見をExcelのグラフ機能を使ってぱくってみた』.」

ikakura7188さんによる発表です。

グラフが簡単に綺麗に書けるとR界隈で最近評判のggplot2というパッケージですが、それをExcelで再現してみようというものです。Excelのあの独特な色使いのグラフは皆さんも飽き飽きするほどよく見ていると思いますが、センスよくグラフをデザインするのは難しいですよね。皆さんも苦労されていることだと思います。

Excelでもggplot2みたいな作図がしようということで、ikakura7188さんは見事ggplot2のribbonというグラフを再現されています。しかし、その作業はなかなか大変だったようで、作り方の解説からはその苦労っぷりが感じられます。そもそも、この発表はikakura7188さんの元教授がggplot2のグラフを見て「それExcelでできるようにしておいて」と無茶ぶりをしたのが始まりだとか…。

5.niamさん「en.newikipedia.org」

続いて@niamさんによる発表です。

前半は研究で開発されている en.newikipedia.org の紹介。機械学習の手法を用いながら、ウェブページに登場するユーザが知らないであろう英単語を自動的に翻訳し提示するというものです。

後半はRのメモリに関するお話。以前のTsukuba.Rでのy_benjoさんのLTに引き続き、Rが作成することができる配列の大きさはどの程度なのか、研究室の150ギガバイトのメモリを持つサーバで限界に挑戦していただきました。結果、Rが生成できる配列(ベクトル)の要素数は最大で2^32-1個までだったそうです。実際に232-1個の要素を持つ配列を生成すると、1つあたり33ギガバイトのメモリを消費するようです。自宅の環境で気軽に試すわけにはいかなさそうですね。

6. yokkunsさん「R勉強会@東京 - Tokyo.Rの紹介」

yokkunsさんの発表は、ご自身が主催されているRの勉強会、Tokyo.Rの紹介です。Tokyo.Rは数少ない社会人中心のRコミュニティで、今年の1月から毎月一回と言う活発なペースで勉強会を開催しており、また他の言語の勉強会と異なり幅広い業種からから参加者が集まることなどが大きな特色です。

勉強会はテキストとLTを中心に行われています。テキストのセッションでは現在「Rによるやさしい統計学」⁠オーム社)を使っており、将来はより専門的な解析を扱っている「Rで学ぶデータサイエンス」シリーズ(共立出版)を用いることになっています。LTのセッションでは、Rや統計解析に関係するものなら何でも、という方針のもと様々なテーマの発表がなされ、時間も10分程度の通常のLTから90分に達するような発表まで多岐にわたっており、今回の発表でもいくつかのLTが会場風景の写真やスライド中のRのコードとともに紹介されていました。

そんなTokyo.Rがこの五月に早くも第5回を開催することが告知され、さらに引き続いて「全国のRコミュニティ合同で、Japan.Rをやりたいですね!」とのスライドが表示されたときは会場が大いに盛り上がりました。

7. jj0c_0jjjさん「Rによるマイクロアレイデータの解析 (RubyでRを使ってみた)」

jj0c_0jjjさんの発表です。

Rには分子生物学分野の解析用にBioConductorというパッケージが活発に開発されています。jj0c_0jjjさんは今回RやBioConductorを使った解析を発表しようと思われたものの、その壁は意外と高かったようです…。

それに代わり、今回はRubyからRを使うことができるRSRubyというライブラリを紹介しました。このライブラリを使えば簡単にRubyからRの関数を使用することができて、作図もできてしまうとのこと。本当に手軽に使用できるとのことなので、Rubyを使っている方は普段のRによる解析に加えてRSRubyも活用してみるといいかもしれません。また、その後RSRubyを使ってRubyからBioConductorを使った解析についても話されています。

8. hiratake55さん「『R-webUI の紹介』WebブラウザやモバイルガジェットからRを使う方法について」

hiratake55さんの発表です。

hiratake55さんのRWebUIは、今までのRの常識を覆す素晴らしいユーザインターフェイスです。これは他のどのようなものよりも便利で、実用的で、そして革新的な機能を備えています。例えばプロジェクト管理機能、これはオンライン上でデータを共有しながら複数人が開発できるようサポートしてくれる機能です。この他にも、強力な検索機能、多言語対応、iPhoneやiPadからの操作も可能といった機能が、あなたのRライフをもっと充実させてくれることでしょう。

…というのを「開発中」だそうです。皆さん「これは使ってみたい!」と思っていた矢先…会場からは驚きの声とともに笑い声が沸き起こりました。ということで、RWebUIでは共同開発者を募集してるそうです。少しでも使ってみたいと思われた方はぜひ共同開発に名乗りをあげてはいかがでしょうか?

9. hamadakoichiさん「Tokyo.Webminingの紹介」

hamadakoichiさんの発表は、ご自身が主催されているTokyo.Webminingの発表です。⁠数理解析手法を使い、実世界の活動の課題を解決したい」⁠蓄積データを活用し、継続的に活動進化出来る世界を作りたい」⁠蓄積データを有効活用したい人がそれを実現出来るようにしたい」との思いで立ち上げられたのが、データマイニング+WEB勉強会@東京でした。

Tokyo.Webminingの勉強会は、⁠一つのテーマに十分な時間を充てて理解・議論を優先する」という方針であり、通常の勉強会では聞けずに終わってしまうような議論・質問も取り込むことができるとのこと。

残念ながら今回は十分な時間がありませんでしたが、発表資料では実際に勉強会で使用されたRのコードも紹介されていました。Tokyo.Webminingも次回で第4回を数え、恒例のUstream配信も行われるとアナウンスされました。

10. n_shuyoさん「普通のプログラミング言語R(仮)」

n_shuyoさんによるLT風の発表で、タイトルは「普通のプログラミング言語R」です。

「Rって便利だけど他のプログラミング言語と違って変なところが多いよね」という話から始まり、⁠Rだって普通のプログラミング言語になりたいはずだ」⁠Rが『普通のプログラミング言語』になるためには『普通のプログラミング』ができればいい」⁠普通のプログラミング』といえば『メタプログラミング⁠⁠」(!?)ということで、どういうわけかRでのクロージャのインスペクトと動的定義についての発表となっています。

クロージャ(関数とそれを評価する環境のペア)に対してできる各操作の具体例を示し、既存の関数の定義を書き換えたりデフォルト引数を変更したりといった他の言語ではあまり見られないようなRの「変」な一面も紹介されていました。このように変な面がたくさんありながらも複雑な統計処理を簡単にできる便利な言語ということで、最後は「Rかわいいよ!」という結論で締めくくっています。

おまけの没ネタ集もRの「変」な面をいくつか紹介していて、非常に興味深い内容となっています。

11. y_benjoさん「きかいがくしゅう!」

y_benjoによるRの機械学習パッケージの紹介です。

Rで利用可能な機械学習のパッケージのうち6種類をピックアップし、それらの使い方をソースコードつきで分かりやすく解説していました。ただ単にデータセットに対して機械学習を適用するだけでなく、各手法の予測精度の確認方法についても触れていました。

また、Rのパッケージを探す上で便利なCRAN Task Viewsの紹介もありました。CRAN Task Viewsは有志がRのパッケージを種類別にまとめて紹介しているもので、これを利用すると、興味のあるパッケージを探したり一括インストールしたりすることが簡単にできるようになります。

「Rを使って機械学習をやってみたいけど何から始めればいいのか分からない」という人にピッタリの発表になっています。また、y_benjoさんのトークもさることながら、発表スライドにもところどころネタが散りばめられており、聞いていて飽きない発表だと思います。

12. mickey24さん「Parallel Computing in R」

トリを飾るのはmickey24。Parallel Computing in Rというタイトルで、snowパッケージを用いたRによる並列計算に関するお話です。

並列計算とは、処理すべき問題を分割してCPUに割り振ることにより高速化を図る手法です。マルチコアCPUやクラスタ環境などにおいて並列計算を行うことにより、計算効率を飛躍的に向上させる事が可能になります。snowパッケージはこのように一見複雑に見える並列計算を簡単に実行できるパッケージです。

発表では、ライフサイエンス統合データベースセンター(DBCLS)において使用されている64CPU/128GBメモリのクラスタマシンを用い、行列計算に関してsnowパッケージを用いた性能評価を行っています。

snowパッケージのわかりやすいサンプルコードやベンチマークも素晴らしいですが、発表後の「おまけ」も見逃せません。おまけでは、Rコンソール上で動作するテトリスゲームの実装、および実演が行われています。

おすすめ記事

記事・ニュース一覧