115
114

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RAdvent Calendar 2014

Day 23

一歩進んだRとの付き合い方

Last updated at Posted at 2014-12-23

どうも、R歴4年目にしてR初心者勢です。こちらは2015年にRをはじめたい、更に知識を高めたい人に向けた記事と自分の抱負になります。

都度、参考になる本やURLを書いているので詳しくはそちらをご覧ください。

これからRをはじめる、ほとんどR使っていない人向け

はじめに: どうしてRなのか

よく言われることですが、

  1. オープンソースでの開発 -> どういう機能をもっているか、どのように処理されるかがわかる
  2. マルチプラットフォームでの利用 -> 環境を選ばずどこでも同じように作業できるというのは大事
  3. 機能拡張(パッケージ、ライブラリ)に優れる -> 必要は発明の母の精神。俺がこういう機能欲しいから作るぜ★

ということを私は挙げます。

海外でも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本人に楽しんでいただけた

ので、調子に乗ってここでも布教活動をします(だって使徒だし...)

羽鳥教については以前の記事をご覧ください

ref) R - 羽鳥教入信のすゝめ - Qiita

特にグラフィックスは標準のものよりもggplot2パッケージを使うと良い。きれいだし、自由度が高いので慣れると便利です。

また、上述のdevtoolsも欠かせないですね...。

ちなみに

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さんが作成されたパッケージが熱いと私の中で話題です。

  • lambdaR -> R にラムダ式を導入
  • pforeach -> R で超簡単に並列処理

自作関数を作ろう、パッケージにして世界に公開しよう

まだまだ関数についての知識が足りないですが、関数を作るのは楽しいです。世の中には数えきれないほどのパッケージがあります。くだらないパッケージもたくさんです。でもそのパッケージを誰かが使えば、ひょっとしたら役に立つかもしれません。その人の関数作成の時間を省略することにもなります。関数をじゃんじゃん書いて、公開してみましょう。

またRStudioを使えばパッケージの作成が楽にできます。

便利なショートカット: 関数の抽出(定義)

たとえば、通常のコードを書いていて、これ関数にしよと思うわけですが、関数となるコードを選択してOption + Command + X (Macの場合)で関数名を定義するポップアップが出てきて、適当な名前をつけるとあら不思議、コード内で使用した変数を自動的に引数とした関数を作ってくれます

本とSlideShareへのリンク

セミナー・勉強会に参加しましょう

勉強する気がなくても、マニアックな話が聞けるので得るものが多いです。適宜、近い場所のセミナーにでもいけばいいんじゃないかな。

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でも良いですね。

情報を公開する

ブログ、rpubsgistQiita、Twitterなんでも良いです。

ありがたいお言葉があります。

私はもっとRの記事が読みたいです。なので皆さんどんどん書いてください。私自身はこうしてQiitaにちまちま投稿するくらいなので来年はがんばりたいところ

よく読んでいるブログ(国内)

皆さま、各自の特色がでていて、最新の知識や技術も積極的に導入しているので勉強になります。

他にはR-bloggeres(世界のRに関する記事を紹介してる)の購読は欠かせないところ

再現性を高めよ

同じことを繰り返し書くのはめんどくさ子さん。多量のファイルやファイルの管理に悩みたくない...。そんな人はrmarkdownパッケージとGitHubを使ったバージョン管理をしましょう。比較的簡単に(日本語関連の闇は深い)reproducibleな文書作成ができます

参考に -> 2014年版RStudioを使った文書作成法 - Qiita

可視化、しよう

インタラクティブにね。というわけで以下の知識を深めると良い

...高みへ

並列処理とか高速化とかよくわからんですが、ご利益がありそうなので勉強したい

  • 正規表現
  • Rcpp

おわりに

最近、神・羽鳥が書いた文書(Hadley Wickham: Impact the world by being useful « IMS Bulletin)を読んで、ついかっとなって書きました。書きなぐりのような文章で、全体でまとまりがなくなってしまいました。振り返ってみると、私自身の2014年版Rに関する知識の総決算、という感じですね...。これからもRと仲良くやっていきたいです。みなさんもR, RStudio, GitHubもっと使っていきましょう。

115
114
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
115
114

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?