【R超入門】未経験からの「R言語で統計・言語デビュー」する人のロールモデル【独学導入する】

#対象とする読者
新入社員の方、エンジニアデビューの方、五月病で苦しんではいませんでしょうか。
同じような方がいるかわかりませんが、
入社したてで、自力である程度使えるようなるには困難が多いです。
こんな学び方したら一年くらいで程々に使えるようになりますよ～、
という目安を作れたらと思い、こんな記事を書き始めました。

#基礎を理解して学んだとしても新しく出てくる疑問
**こんなことやりたいけど、どの機能や関数使ったらいいんですか??**
**何をしてこの結果が出てくるんですか!?**
**library()って使えても、それブラックボックスでない？(内部で何してるか知りたい)**
みたいなことをずっと考えてました。(私はpredictが謎だった)

#"調べる"に慣れる

「エンジニアになったからには自分で調べて解決できて当然」
という空気がありまして、社会人になってからプログラミングデビューを果たした私は、
調べ方さえわからなかったので困ったものでした。。。
なんといっても、検索に引っかけるための単語を知らないんですから。

・pythonでエラーが出た時にどこを切り取って調べたらいいのか
・関数間で統一の値を使いたい!
　でも"グローバル変数"という単語を知らないので検索できない

そんな当時の私に送る
**「基礎的な部分を知る方法」**
**「困ったときに検索する方法」**
のまとめを作ってみました。

同じような悩みを持っている人、強く生きてください。

#本で調べる

**Rによるやさしい統計学**

![412G0HB7AnL.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/82b57707-acd6-3362-b476-0fcf235f470a.jpeg)

きっとR使いたい人は統計に関わるはず！
という考えから選びましたが別の用途でRを使う人はスルーで。

Rインストールの基礎から、統計の母集団など、検定、回帰分析から共分散構造分析くらいまでをカバーしてくれる本。
初心者チュートリアルにはいいと思った。
ただ、コード内に日本語がふんだんに使われているため、扱いにくい。
でも　**書く!**　読んで、また　**書く!**。

目次も垂れ流しておきます。どの程度のレベル本か、目次がさっぱりなら購入してもいいかと。
第I部　基礎編
第1章　R と統計学
第2章　1 つの変数の記述統計
第3章　2 つの変数の記述統計
第4章　母集団と標本
第5章　統計的仮説検定
第6章　2 つの平均値を比較する
第7章　分散分析
第II部　応用編
第8章　ベクトル・行列の基礎
第9章　データフレーム
第10章　外れ値が相関係数に及ぼす影響
第11章　統計解析で分かること・分からないこと
第12章　二項検定
第13章 プリ・ポストデザインデータの分析
第14章　質問紙尺度データの処理
第15章　回帰分析
第16章　因子分析
第17章　共分散構造分析
第18章　人工データの発生
第19章　検定の多重性と第1 種の誤りの確率
第20章　検定力分析によるサンプルサイズの決定
付録A　R の情報源
付録B　練習問題解答
付録C　FAQ

ついでに統計の基礎的な部分をしっかり勉強するならコレ↓も読んでおく。

**統計学入門 (基礎統計学Ⅰ)**
もはや説明不要の赤い本。統計を専門にしていなかった人、数学とご無沙汰だった人は学びなおしましょう。

![512H1E9ARDL.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/b58d5457-90ef-057d-3d9d-151526a94f99.jpeg)


**完全独習 統計学入門**
上が難しい人にはコレ。内容は狭いが柔らかく書かれている。

![41OfaN1i6qL.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/cc49b13e-73a4-2ede-4fd7-22414e932670.jpeg)

**日本統計学会公式認定 統計検定2級対応 統計学基礎**
私は理論もコードも手を動かさないと頭に入らない人間なので、ついでに試験を目指しながら勉強しました。

![81zijMo+HSL.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/e77d47d9-4490-2d76-673f-f60ba172eb08.jpeg)

データや図・グラフの見方、データの種類とは？、
データを見るときの心構え、みたいな地味だけど大事な部分に気づかせてくれました。
あと、試験が絡むと「おぼえなきゃ！」という気持ちで勉強するので身になった。

もうちょっと専門・実務で使える程度には高度を求めるならコレ

**統計学:Rを用いた入門書 改訂第2版**

2版になってカラーになっています。
内容はやはり基本や入門。
ですが本の中に例が多くあり、こんな場合にはこんな検定、
この値を見てモデル精度を確認しよう。
などが豊富なため上の「やさしい統計学」で操作を覚えたら、
この本で色々なパターンを学んでいくとなじみやすいかと。
コードも多いし見やすい。

![417RwY6PENL._SX346_BO1,204,203,200_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/4ae880dc-ac6e-2e75-85e6-f3c9e0af7c73.jpeg)

第1章　基本
第2章　データフレーム
第3章　さまざまな中心値
第4章　分散
第5章　1標本データ
第6章　2標本データ
第7章　回帰
第8章　分散分析
第9章　共分散分析
第10章　重回帰
第11章　対比
第12章　いろいろな応答変数
第13章　計数データ
第14章　比率データ
第15章　2項応答変数
第16章　死亡および故障データ


やさしめの入門を読み終えたら早速やりたい分野の本や、
データサイエンスの入門(緑本)とか読み始めるといいかと思います。
(統計や分析の入門本は他ブログ等で紹介されているのでそちらへ。
　　　　　　マイナーな良本があれば紹介していきたいと思います。)

本のオススメ記事ではないので、
とりあえず最初に読む本はこれらを紹介させていただきました。

#Rを扱うサイトで調べる

**[R-tips](http://cse.naro.affrc.go.jp/takezawa/r-tips/r.html)**

![tip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/a04886a4-3d8e-fe26-ea3b-9b6c70179a18.png)


R知ったらまずコレをやりました。
暇さえあればスーパーマリオやってると思いながら1-1から最後まで読んで書く。
終わったころにはクッパも倒せるようになっているはず。
何より種類が多いし長い。
マリオと違いワープできる土管はありません。
でも　**書く!**　読んで、また　**書く!**。
きっと何回か戻ってくることになるサイトです。

**[RjpWiki](http://www.okadajp.org/RWiki/)**

![0022.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/4dbf5f1f-2d56-802d-e588-9bfb4a62f3cf.png)

どこかのページにやりたいことが乗っていたりします。
私の調べ方は、上タブの **一覧** を選び**ページ内検索(ctrl + f)**で調べたい単語を調べます。
文字を切り抜きたい時には**"文字"**と検索すると、**"文字列の処理" **が出てくるので、そのページからstrsubなどがあることを学ぶ。というように使っていました。

**[cran](https://cran.r-project.org/)**

![0666.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/1e865a11-e1cd-253c-3086-bafc07d18f5e.png)

あー、ソフトをDLするページですね。
と思っていました。
左下にあるmanualsやcontributedに参考になるファイルがあったりします。
私は以下のものをよく参考にさせていただいています。
この関数何?って時に読みます。

[R基本統計関数マニュアル　間頼 様](https://cran.r-project.org/doc/contrib/manuals-jp/Mase-Rstatman.pdf)

[R入門 R ノート: データ解析とグラフィックスのためのプログラミング環境　W. N. Venables, D. M. Smith and the R Development Core Team](https://cran.r-project.org/doc/contrib/manuals-jp/R-intro-170.jp.pdf)

読み方は"シーラン"や"クラン"と呼ぶ人がいますがシーラン派が多い印象(喧嘩するくらいなら相手の呼び方に合わせておきましょう)。

ちなみに関数についてはR上でこんな調べ方もあります。

![011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/a86cb9eb-2f2d-715d-6248-15044346478b.png)

スクリプトとして単純に関数を打ち込むと何をinputしたらいいのか教えてくれます。

![022.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/7c113207-84a4-4a65-7e31-3f58374d6959.png)

?を関数の前に打ち込むとブラウザが開きhelpを見ることができます。

![0645.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/228200a6-5a4d-e100-d060-f2ed67637703.png)

より詳しく関数を確認したいときがある。
パッケージになってくると確認が難しかったり、
パッケージとして誰かが作成してくれていないか調べたいときにはこちらを使います

[R documentation](https://www.rdocumentation.org/)

![2222.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/c3b11d57-9890-fa73-c2c2-1b84c23847ab.png)


このページが結構使いやすくて、
呼び出されている関数がどうやって定義されているのかなど読むことができます。
たまにサンプルコードが乗っているので、
関数の使い方を理解することもできて、
至れり尽くせりです。

![aov01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/be8ea30c-dfc3-3e4e-9c32-f96742593e28.png)

![aov02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/f9a79495-08a6-407f-61af-f8285949c504.png)

View Source というタブがあると、パッケージ内で定義されているfunctionが見れたりするので、
計算式をどのようにパッケージとして実装しているかなどが見られます。
(こういうことが出来れば、最新論文に書かれた理論をパッケージとして組むことができそうですね。ワクワクします。勉強しましょう。)

[データサイエンス研究室 金 教授](https://www1.doshisha.ac.jp/~mjin/R/)
優しい図と豊富なチャプターで理解しやすかったです。
全部通して写経(コードをなぞって実行すること)できたらある程度できるようになっているのでは?
私は数式だけでなく、図がないと分からないタイプなので助かっています。
(本当にありがとうございます。)

#コミュニティで同じような問題を抱えている人を見つける

[stack overflow](https://stackoverflow.com/)
[日本語](https://ja.stackoverflow.com/)

![99898.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/b20b1bbd-f301-204a-3bec-03842205253f.png)


種々のプログラミング言語についての知恵袋・掲示板
やはり英語版のほうが問題件数が多かったり、
情報が早かったり、クリティカルな質問があったり解決に役立ちます。

**[teratail](https://teratail.com/)**

![tera.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/7eb9fa0e-76bc-1b89-9407-0b7d34bec5de.png)

15分調べても分からないことは、質問しよう！
という文句の質問サイト

**[Qiita](https://qiita.com/)**

![qqq.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/deab3dc5-add7-8f37-ae8e-6ff142e9a5f8.png)

みんな大好きQiita!　ありがとうQiita!　(媚びを売る)
チートシートの存在をはじめに知ることが出来ていたらなぁ。と思います。
記事にチートシートのリンクをまとめてくれている方がいるので、
探してみましょう！（チートシートは関数の機能を説明した一枚のチラシ）

#最後に

入門書は山ほどあります。
ネット上に誰かの作成したpdfが落ちてたりもします。
ただ、問題の解決方法ってあまり教えてもらえなかったりしますので、
(知ってる人の中では当然になっていて調べ方を教えるって考えないのかも)
その紹介になればと思い記事にしました。


私はあまり使いこなせていないですが、gitには色々なことを実装している人がいるので、
やりたいことを誰かやってないか調べる方法もあります。
ドットインストールのような動画での勉強は、わからない時の見直しが出来ないので、
本など買って、いつでも開けるものに付箋を貼っておくのが使いやすいかと思います。

ホントにデビューしたてで、基本的な部分から勉強した時の紹介と、
疑問が出てきた時の解決方法のルーティーンを書きなぐってみましたが、
いかがだったでしょうか。
なかなかgoogle検索で引っかからないときは、こんな調べ方もあると思い出してくだされば幸いです。

**"知っている"**という事がまず大切で、
身に着けるには**"知った事"**を使ってみることだと思います。
「読んで書く」とか、「聞いた方法・本で見たものを試す」など。
壁にぶち当たった時はこんな私のルーティーンをちょっと思い出して使ってみてください。

あとはRをつかって**"統計を知っている"**側になっていきましょう。
Rを使えば自然現象を数式に直したり、
ギャンブルで破産する前に、確率でストップロスすることや、何年後に大儲けできるのか計算できるのですから。

さあ、息抜きに宝くじでも買いに行きましょう!!




.