どうも、R歴4年目にしてR初心者勢です。こちらは2015年にRをはじめたい、更に知識を高めたい人に向けた記事と自分の抱負になります。
都度、参考になる本やURLを書いているので詳しくはそちらをご覧ください。
これからRをはじめる、ほとんどR使っていない人向け
はじめに: どうしてRなのか
よく言われることですが、
- オープンソースでの開発 -> どういう機能をもっているか、どのように処理されるかがわかる
- マルチプラットフォームでの利用 -> 環境を選ばずどこでも同じように作業できるというのは大事
- 機能拡張(パッケージ、ライブラリ)に優れる -> 必要は発明の母の精神。俺がこういう機能欲しいから作るぜ★
ということを私は挙げます。
海外でもRは人気ですね -> TIOBE Software: Tiobe Index(これからはじめたいプログラミング言語としてRとSwiftへの注目が高まっている)
比較的最近のR導入に関するスライドはHijiyama.R Entry sessionでしょうか。一読すると良いです。そういえば自分も導入記事を書いていました -> Rプログラミングのための第一歩 - Qiita (まだ未完)
環境の整備
環境は大事です。個人の好みですが、最低限の環境は揃えるのが良いかと思います。とりあえず、Rをインストールしたあとは
- RStudioのダウンロード、インストール
- GitHubのアカウントを作成
-
motivator
パッケージのインストール
をしましょう。
RStudioについて
RSutdioはRの統合開発環境(Integrated Development Environment: IDE)です。
2011年にリリースがはじまりました
上の画像のように、4つのパネルに分割されているのが特徴で、画面一つでコードを書いたり、アウトプットの確認ができます。ヘルプの参照も楽です。変数、関数名の候補出力、パッケージのインストールや更新も便利な機能のひとつです。
RをインストールしていてRStudioを使っていない人をみると、崇拝するエディタがあるなど、宗教上の理由がある場合をのぞいて、なんで使ってないの(憤怒)となります。
超絶便利なショートカットキー
もっと早く知りたかった、というもの。まずはOption + Shift + K(Macの場合)を押してください。しゅごーいいいいいいいい。現場からは以上です
RStudioを扱っている本は少ないですが、私の知っているものでは以下のものがあります。
- Mark P. J., Van Der Loo, Edwin De Jonge (2012). Learning RStudio for R Statistical Computing. Packt Publishing
- Kindleで1000円ちょいと割安。良い。
- John Verzani (2011). Getting Started With RStudio. Oreilly
- 読んでいない
- 石田基広 (2012). Rで学ぶデータ・プログラミング入門 RStudioを活用する. 共立出版
- 日本語での良書。Gitについても書かれている
GitHub
プロジェクトやコード、自作関数の管理はGitHubで行いましょう。公開したコードについて、誰かがコメントをくれたり、改善策を出してくれるかもしれません。
最近ではパッケージの開発をGitHubで行う人が増えています。devtools
パッケージを使えば、GitHubの開発版パッケージ(CRANに登録しない、されない人もいるので)をインストール可能です。
おすすめ本
- 岩松 信洋, 上川 純一, まえだこうへい, 小川 伸一郎 (2011).Gitによるバージョン管理. オーム社
- 最近買った良書。細かく書かれているし、わかりやすい
- 大塚弘記 (2014). GitHub実践入門. 技術評論社
motivator: 進捗どうですか?
進捗状況を可視化できるとモチベーションの維持・向上につながります。というわけで、手前味噌ですがmotivator
パッケージを作りました。たくさんコードを書きましょう!
hadleyverse
Hadley本人に楽しんでいただけた
@kohske the google translation is pretty hilarious: https://t.co/SOH8KZg87P
— Hadley Wickham (@hadleywickham) December 13, 2014
ので、調子に乗ってここでも布教活動をします(だって使徒だし...)
羽鳥教については以前の記事をご覧ください
特にグラフィックスは標準のものよりもggplot2
パッケージを使うと良い。きれいだし、自由度が高いので慣れると便利です。
また、上述のdevtools
も欠かせないですね...。
ちなみに
Hadley Wickhamのパッケージ群で回る世界をさす言葉としてはhadleyverseっていうのもよく見ますね。彼が作った有用なパッケージ群を中心にRの環境を整えてくれる同名のdocker-imageもあります https://t.co/kVocuZyJ5J
— イルミ最高 (@dichika) December 9, 2014
Rともっと仲良くなりたい人向け(2015年私の抱負)
R周りの変化は結構激しいです。どんどん新しいものが出てきます。あなたの知識は最新ですか?
Pipe: こういう書き方もあります
処理を続けていく際、
library(dplyr)
df <- data(iris)
df <- filter(iris, Species == "setosa")
df <- summarise(df, MIN=min(Sepal.Length),
MEAN=mean(Sepal.Length),
MEDIAN=median(Sepal.Length),
MAX=max(Sepal.Length))
としたり、
max(subset(data.frame(x = 1, y = 1:10), y > 5))
というようなネスト構造のコードは、Pipe演算子 %>%
を使えばわかりやすく表現することができます。はじめの例では
library(dplyr)
library(magrittr) # dplyrと同時に読み込まれるけど...
df <- iris %>%
filter(Species == "setosa") %>%
summarise_each(funs(min, mean, median, max), Sepal.Length)
詳しくは... このRパッケージがすごい2014 - Qiitaでのmagrittr紹介記事をどうぞ。
今、hoxo_mさんから目が離せない
あま●んのようなアイコンの人がいます。id: hoxo_mさんです。最近、hoxo_mさんが作成されたパッケージが熱いと私の中で話題です。
自作関数を作ろう、パッケージにして世界に公開しよう
まだまだ関数についての知識が足りないですが、関数を作るのは楽しいです。世の中には数えきれないほどのパッケージがあります。くだらないパッケージもたくさんです。でもそのパッケージを誰かが使えば、ひょっとしたら役に立つかもしれません。その人の関数作成の時間を省略することにもなります。関数をじゃんじゃん書いて、公開してみましょう。
またRStudioを使えばパッケージの作成が楽にできます。
便利なショートカット: 関数の抽出(定義)
たとえば、通常のコードを書いていて、これ関数にしよと思うわけですが、関数となるコードを選択してOption + Command + X (Macの場合)で関数名を定義するポップアップが出てきて、適当な名前をつけるとあら不思議、コード内で使用した変数を自動的に引数とした関数を作ってくれます
本とSlideShareへのリンク
- 金明哲 編 (2014). Rのパッケージおよびツールの作成と応用. 共立出版
- 新しい本(2014年12月刊行)。Rcppごりごり使うぜ!という人には良い
-
Rパッケージ作成ハドリー風: devtools, roxygen2, testthatを添えて
- Tokyo.Rで直接聞いた話。私はこれでパッケージ作成をはじめました
-
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
- Hadely ありがとう。ネ申!! teramonagi さんありがとう。大イム!!
-
Data scienceをきわめて個人的な意思決定に活かす - 東京で尻を洗う
- すごく、よく、わかる。納得の一言
セミナー・勉強会に参加しましょう
勉強する気がなくても、マニアックな話が聞けるので得るものが多いです。適宜、近い場所のセミナーにでもいけばいいんじゃないかな。
Name | Organizer | Place |
---|---|---|
HiRoshima.R (HijiyamaR) | @sakaue | Hiroshima, Hiroshima |
Kashiwa.R | @Acafe_info | Kashiwa, Chiba |
Kobe.R | @h_kawahara, @florets1 | Kobe, Kobe |
Nagoya.R | @kwsk3939 | Nagoya, Aichi |
Okinawa.R (沖縄R同好会) | - | Naha, Okinawa |
Osaka.R | @phosphor_m | Osaka, Osaka |
SappoRo.R | @uranoken | Sapporo, Hokkaido |
Shiga.R | - | - |
Tokyo.R | @yokkuns | Tokyo, Tokyo |
Tsukuba.R | - | - |
Yokohama.R | @uribo | Yokohama, Kanagawa |
ガチ勢はUseR!@Aalborg, Denmark(R利用者の国際カンファレンス)へどうぞ。おそらく12月に開催されるであろうJapan.Rでも良いですね。
We are excited to announce the first confirmed speaker at useR! 2015 #useR2015 in Aalborg, Denmark: Thomas Lumley @tslumley (R Core, Survey)
— useR! 2015 Aalborg (@user2015aalborg) July 7, 2014
情報を公開する
ブログ、rpubs、gist、Qiita、Twitterなんでも良いです。
ありがたいお言葉があります。
エンジニアだけでなくデータ解析者もブログはやるべき!いいポジションがあってもブログかgithubがないと推薦もできん。
— berobero (@berobero11) December 3, 2014
私はもっとRの記事が読みたいです。なので皆さんどんどん書いてください。私自身はこうしてQiitaにちまちま投稿するくらいなので来年はがんばりたいところ
よく読んでいるブログ(国内)
皆さま、各自の特色がでていて、最新の知識や技術も積極的に導入しているので勉強になります。
-
東京で尻を洗う
- yeah::zoi()、きもちいいいいいい!R記事、お世話になっています
-
My Life as a Mock Quant
- ご存知大仏さま
-
gepulog
- 今年のJapan.Rの主催者のひとり。ねっとあいどるのげぷろくんです
-
ほくそ笑む
- 統計解析なんかの勉強にも良いです
-
捨てられたブログ
- 力がほしいか(Rに詳しくなりたいなら必読)
-
300億円欲しい
- 面白い。最近、やきゅーデータの解析がないですね...
-
驚異のアニヲタ社会復帰への道
- 小難しい内容を楽しい感じで紹介してくれます
他にはR-bloggeres(世界のRに関する記事を紹介してる)の購読は欠かせないところ
再現性を高めよ
同じことを繰り返し書くのはめんどくさ子さん。多量のファイルやファイルの管理に悩みたくない...。そんな人はrmarkdown
パッケージとGitHubを使ったバージョン管理をしましょう。比較的簡単に(日本語関連の闇は深い)reproducibleな文書作成ができます
参考に -> 2014年版RStudioを使った文書作成法 - Qiita
可視化、しよう
インタラクティブにね。というわけで以下の知識を深めると良い
- Shiny
- Javascript (htmlwidgets)
...高みへ
並列処理とか高速化とかよくわからんですが、ご利益がありそうなので勉強したい
- 正規表現
- Rcpp
おわりに
最近、神・羽鳥が書いた文書(Hadley Wickham: Impact the world by being useful « IMS Bulletin)を読んで、ついかっとなって書きました。書きなぐりのような文章で、全体でまとまりがなくなってしまいました。振り返ってみると、私自身の2014年版Rに関する知識の総決算、という感じですね...。これからもRと仲良くやっていきたいです。みなさんもR, RStudio, GitHubもっと使っていきましょう。