SlideShare a Scribd company logo
Yurufuwa.R #1
                                 (Osaka.R 女子部)
                                      2012/02/12



                 Introduction




先生、この資料って何ですか?


「ゆるふわーる」という R 初心者のための勉強会用資料なのだそうです。


へー。こういう仕様にする必要性はあったんですか?


おそらくないけれど、あえて言うなら作成者がそうしたかったのでしょうね。


・・・・。


気を取り直して、今日の勉強会で取りあげる内容について概観してみましょう。




                   今日やりたいこと
  1)R って何ですか?
  2)インストールしてみよう・R コマンダーの入れ方
  3)R コンソールに慣れよう
  4)関数を使ってみよう
  5)外部データを読み込んでみよう
  4)グラフを描いてみよう




                      1
Yurufuwa.R #1
                                                                          (Osaka.R 女子部)
                                                                                 2012/02/12




                                1)R って何ですか?
                                  R とは、
                                      「国際共同研究のオープンソースなプロジェ
                                  クトで開発され、GNU GPL に従って公開・配布され
                                  ている高機能な統計ソフト」のことです。


                                          *GNU GPL: GNU General Public License

                                      (フリーソフトウェアウェアライセンスの一つ)




  R を使用するメリット                                                                    いろんなメリッ
  1) 無料である                                                                       トがあるね!
  2) 中身がわかって信頼性が高い
  3) プログラミング可能で拡張性がある
  4) 軽快な反応と対話的な操作
      (昔の PC でも動きます)


     R は統計ソフトの側面が強調されがちですが、元はプログラミング言語ですので、分

析以外のことにも使用可能です。

   詳しくは本家(Osaka.R)でチェックしてみてね!(丸投げ)


                        R をインストールしよう
   インストールの前に、配布されたデータが全部あるか確認してね!


     まず「R-2.14.1-win.exe」をダブルクリックして                   フォルダ yuruR の中身
インストーラを立ち上げます。ネット環境のある方は
http://cran.md.tsukuba.ac.jp/                         R-2.14.1-win.exe
で最新の R が手に入ります。                                       (Windows 用最新 ver.)
                                                      R user config.hta
    インストール時の言語が選べるね。                                  (設定用ファイル)
                                                      dataset.xls


                                      2
Yurufuwa.R #1
                                                (Osaka.R 女子部)
                                                    2012/02/12



    そこでは日本語ではなく英語(English)を選ぶのがオススメです。というのも、日本語を

選ぶとインストール時に以下のように文字化けが起こり、読めなくなってしまう場合があ
るからです。




    といっても、後で設定用ファイルを使って一気に初期設定を行いますので、ここはあ

まり気にしなくても大丈夫です。

    できましたー!この.hta ファイルは?


    インストールが完了したら、.hta ファイルをダブルクリックして下さい。

これは細かい初期設定を一気にやってくれるプログラムです。こちらで手に入ります。
http://ofmind.net/doc/r-tips#USER-CONFIG




                                               ここをクリック!




             R コマンダーをインストールしよう
    R コマンダーってなんですか?


    R には「R Commander」という便利なパッケージがあり、これを使うことでテキスト

を打ち込む(これは R コンソールと呼ばれます)のではなく、いわゆる SPSS のようにクリッ
クしながら分析が行えるようになります。


                                           3
Yurufuwa.R #1
                                        (Osaka.R 女子部)
                                            2012/02/12


  わー!それは便利ですね。コンソールに慣れていなくても安心です。


  ただし、CRAN(R の本体や、パッケージがおいてあるサーバー)からいくつかのパッ

ケージをダウンロードする必要があります。以下に手順を示しておきますので、ネット環
境があるときに設定しておきましょう。

 1) R を立ち上げます
 2) R のコンソール(テキストを打ち込むウィンドウ)上部にある
   「パッケージ」タブを選択し、
                「パッケージのインストール」を選択します。
 3) 「CRAN mirror」パネルから、好きなサーバーを選択します。
   (Japan のどこかがオススメです)
 4) 「Packages」パネルから「Rcmdr」を選択します。
   (これで R コマンダー本体がダウンロード・インストールされます)
 5) コンソール上の表示が止まったら、コンソール部分に以下のように入力します
    library(Rcmdr)
 6) 「Rcmdr が使用する以下のパッケージがありません。・・これらのパッケージをイ
   ンストールしますか?」というパネルが出てくるので、「はい」を選択します。
   (ここで R コマンダーが必要とする他のパッケージをダウンロードします)
 7) 「無いパッケージをインストールする」パネルでは「CRAN」を選択し、
                                     「OK」を押
   します。コンソールの表示が止まるとインストール完了です。
 8) R コマンダーを立ち上げるには、コンソールに以下のように入力します。
    library(Rcmdr)


  これで R コマンダーが使えるようになりますね!


  R コマンダーの「ヘルプ」内にある「R コマンダー入門」は日本語化されているので、

これを一通り読んでおくといいと思います。

  それじゃあこれを使ってどんどん分析をしていきましょう!


  そうしたいところなのですが、ネット環境が無い状態を想定した勉強会ですので、R

コマンダーのセッティングは各自でして頂きます。今日はせっかくなので R コンソールに
慣れることにしましょう。

  ええー・・せっかく簡単にできそうだったのに・・


                         4
Yurufuwa.R #1
                                            (Osaka.R 女子部)
                                                 2012/02/12


            R コンソールに慣れよう
 初っぱなからですが、 を終了するときのコマンドは
           R             「q()」です。入力してみましょう。


 「作業スペースを保存しますか?」と訊かれました!


  R では今までやってきた履歴を保存しておくことができます。保存したい場合は「は

い」を選択しましょう。また、入力時は基本的に「半角英数(日本語入力オフ)
                                   」がベター
です。

               R は統計ソフトですので、単純な計算ができます。
               試しに以下の式を入力して結果を確認してみましょう。


               1) 3 + 2
               2) 2 * 5
               3) (3+2)^2/(6-1)     (^はべき乗を示す)




 できましたー!でも、これじゃ電卓とあんまり変わりません・・


 ではここからちょっとプログラミングっぽく、
                     「代入」をしてみましょう。

R では特定の文字に値・データを代入することができます。
代入する際は「代入先の名前 <- 代入する元」と入力します。
試しに以下のように入力してから 1), 2)を実行してみましょう。
 a <- 3
 b <- 2                   「<-」の前後には
 c <- a+b                 半角スペースを
1) c                      忘れずに
2) c-a



 先生!いろんな文字にいろいろ代入してオブジェクト(代入して作られたモノ)にして

いたら、どれに何が入ってるかわからなくなりました!

 そんなときは「ls()」を入力すると、すでに何かが代入されている文字列が表示できま


                           5
Yurufuwa.R #1
                                         (Osaka.R 女子部)
                                             2012/02/12

す。

 もう要らない代入はどうしたらいいですか?


  「rm()」で、括弧の中に削除したい文字列を入れると削除されます。また、全て削除す

ることのできる「rm(list=ls())」という呪文もあります。何か新しい分析を始める前は、こ
の呪文を使って全てのオブジェクトを削除しておくことをオススメします。また、これは
「その他」タブから「全てのオブジェクトの消去」を選択することでも可能です。


                  関数を使ってみよう
  やっとデータを扱う段階に来ましたね!


  複数の列を含むデータはもう少し後の方でやります。ここでは一列だけの単純なデータ

に対して、総和や平均、データの個数を数えたりしてみます。

☆ある文字に複数のデータ(1, 2, 3)を代入するには「c()」(c:combine)を使用します。
  以下のように入力してから、a を実行してみましょう。
  a <- c(1,2,3)


☆オブジェクトの中のデータの個数を知りたいときは、「length()」を使用します。
  先ほど作成したオブジェクト a の中のデータの個数を調べてみましょう。
  length(a)


☆オブジェクトの中のデータの総和を知りたいときは、「sum()」を使用します。
  先ほど作成したオブジェクト a の総和を求めてみましょう。
  sum(a)


  さて、ここまでできたらデータの平均値を求めることができます。


  はい!「sum(a)/length(a)」で求められます!


  よくできました。関数を使うときは括弧の中にオブジェクトを入れることで適用できる

ようになりますね。それではもう少し複雑なデータを扱ってみましょう。




                           6
Yurufuwa.R #1
                                             (Osaka.R 女子部)
                                                 2012/02/12


           外部データを読み込んでみよう

 それではフォルダ「yuruR」から、dataset.xls を開いて下さい。


 架空の成績データですね。


 1 行目が変数名、それ以降にデータが入っています。開けたら、以下のようにコピーし

たい部分を範囲選択して、
           「Ctrl + C」を押してコピーします(右クリックから「コピー」で
も構いません)。




 できました!これでデータがクリップボードにコピーされました!


 次に R コンソールに戻って、 <- read.delim(“clipboard”)」と入力しましょう。以下の
               「x

ようにエクセルからコピーされたクリップボードのデータが、 の x というオブジェクトに
                            R
代入されます。




                          7
Yurufuwa.R #1
                                                    (Osaka.R 女子部)
                                                        2012/02/12


  データが R で扱えるようになりましたー!ちなみに今回「x」に代入しましたが、好み

の文字列で大丈夫です。

  それでは R 上でこのデータの特徴について見ていきましょう。

☆データの形式の型(class)を確認するには class 関数を使用します。
  class(x)
  [1] “data.frame”   ←数値・文字・因子などをまとめたモノ
☆オブジェクトに含まれる変数名は names 関数、データの行数(=データ数)を確認す
るときは nrow 関数を使用します。
  names(x)
  [1] “学生名” “性別” “順位” “国語” “数学” “英語”   ←変数名が出力される
  nrow(x)
  [1] 20                               ←データ数(20 名分)が出力される



  む、この形だと「国語の成績だけ見たい」場合、列ごとに見ることはできないのですか?




  「オブジェクト x の中にある”国語”」というように、オブジェクトを指定することで可

能になりますよ。オブジェクトの指定は「x$国語」のように、ドルマークを挟みます。
また、直接扱えるようになる関数として、attach 関数があります。
                                 「attach(x)」と入力する
ことでその後直接変数を扱えるようになります。

  できたー!




                                  8
Yurufuwa.R #1
                                               (Osaka.R 女子部)
                                                     2012/02/12


 個々の変数に対して平均(colMeans 関数)、中央値、最小値、最大値を求めることもでき

るのですが、これらを一気にまとめてやってくれるのが summary 関数です。

  それぞれの変数に対して最小値・第1四分位・中央値・平均値・第3四分位・最大値を

算出してくれますね。便利です!国語・数学・英語だけの平均値を見たい場合はどうした
らいいでしょう?

 ☆変数を同時に扱いたい場合はいくつか入力方法があります。
        ・colMeans(x[,4:6])
        ・colMeans(x[,c(4,5,6)])
        ・colMeans(x[, c(“国語”, “数学”, “英語”)])
  [○, △]はデータフレーム中のどの部分を扱うかを示しています。○は列、△は行を表
 しています。何も入力されなければ対象は「全て」になります。
  また、番号は「□番目の列・行」を示しており、4:6(4番目から6番目まで)とまと
 めて指定することもできます。あるいは、個別に指定し combine 関数を使ってまとめる
 ことも可能です。


  なお、中央値は「sapply(x[データ指定],median)」、最小値は「min()」、最大値は「max()」

でそれぞれ求めることができます。また、分散は「var()」
                            、標準偏差は「sd()」で求められま
す。是非いろいろ試してデータの扱いに慣れてください。


                       グラフを描いてみよう

  R はきれいな図が描けることでも有名です。先ほどのデータを元にグラフを描いてみ

ましょう。

☆ここではヒストグラムと散布図のみ扱います。
  ヒストグラムを描くには「hist()」、散布図は「plot()」を使用します。
  hist(国語)               ←国語の得点のヒストグラム
  plot(英語, 国語)           ←「X 軸:英語、Y 軸:国語」の得点の散布図
  (plot 関数では先に入れた変数が X 軸になるので注意)



 簡単にグラフが描けました!




                                      9
Yurufuwa.R #1
                                                       (Osaka.R 女子部)
                                                           2012/02/12


  さて、駆け足で R の入門をやってみましたが、時間的制約のため今回は以上としたい

と思います。簡単な分析も行う予定でしたが、実はデータの扱いさえわかればあとは関数
を適用していくだけですので、是非ご自身でいろいろな関数を発掘してみてください。

  R コマンダーも使ってみてね!


  以下に今回参考にした書籍とサイト、および非常に参考になるサイトをまとめておき

ますのでご活用ください。皆様の R ユーザーとして第一歩を後押しできたのなら幸いです。

  また第二回で会おうね!

☆参考文献
「R による心理・調査データ解析」著:緒賀郷志 東京図書
(本資料はこちらの図書を全面的に参考にさせていただきました)


☆参考サイト
      http://www.okada.jp.org/RWiki/
(言わずと知れた Rwiki です。R について日本語で調べたい場合はこちらへ)
      http://phi.med.gunma-u.ac.jp/swtips/R.html
(R のインストールに関してはこちらを参考にしました)
      http://plaza.umin.ac.jp/~takeshou/R/index.html
(R コマンダーのインストールなどはこちらを参考にしました)

 本資料の文責は全て@nanaya_sac にあります。
 お問い合わせや修正・改善のご要望は twitter でどうぞ。
 また、本資料では繭子さん(http://iamhoppe.jugem.jp/)よりイラストを提供して頂きまし
た。イラストの著作権は繭子さんに属します。




                       Have a nice R life!


                                       10

More Related Content

What's hot

文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
Preferred Networks
 
10分で分かるr言語入門ver2 6
10分で分かるr言語入門ver2 610分で分かるr言語入門ver2 6
10分で分かるr言語入門ver2 6
Nobuaki Oshiro
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
Nobuaki Oshiro
 
Hiroshimar4_Rintro
Hiroshimar4_RintroHiroshimar4_Rintro
Hiroshimar4_Rintro
SAKAUE, Tatsuya
 
HiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaueHiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaue
SAKAUE, Tatsuya
 
データ解析技術入門(R編)
データ解析技術入門(R編)データ解析技術入門(R編)
データ解析技術入門(R編)Takumi Asai
 
Material
MaterialMaterial
Material
_TUNE_
 
10分で分かるr言語入門ver2.7
10分で分かるr言語入門ver2.710分で分かるr言語入門ver2.7
10分で分かるr言語入門ver2.7Nobuaki Oshiro
 
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
Shinichi Kozake
 
10分で分かるR言語入門ver2_0906
10分で分かるR言語入門ver2_090610分で分かるR言語入門ver2_0906
10分で分かるR言語入門ver2_0906Nobuaki Oshiro
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
Masahiro Hayashi
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
Tatsuya Tojima
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
Masahiro Hayashi
 
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッションYamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション
考司 小杉
 
60分で体験する Stream / Lambda
 ハンズオン
60分で体験する Stream / Lambda
 ハンズオン60分で体験する Stream / Lambda
 ハンズオン
60分で体験する Stream / Lambda
 ハンズオン
Hiroto Yamakawa
 
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話
Yuya Matsumura
 
D言語にまだ入っていない新機能 (Dの日#2)
D言語にまだ入っていない新機能 (Dの日#2)D言語にまだ入っていない新機能 (Dの日#2)
D言語にまだ入っていない新機能 (Dの日#2)
tom-tan
 
Rstudio事始め
Rstudio事始めRstudio事始め
Rstudio事始め
Takashi Yamane
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
Ransui Iso
 

What's hot (20)

文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析文字列曖昧検索によるマルウェアバイナリ解析
文字列曖昧検索によるマルウェアバイナリ解析
 
10分で分かるr言語入門ver2 6
10分で分かるr言語入門ver2 610分で分かるr言語入門ver2 6
10分で分かるr言語入門ver2 6
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
Hiroshimar4_Rintro
Hiroshimar4_RintroHiroshimar4_Rintro
Hiroshimar4_Rintro
 
HiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaueHiroshimaR4_LT_sakaue
HiroshimaR4_LT_sakaue
 
データ解析技術入門(R編)
データ解析技術入門(R編)データ解析技術入門(R編)
データ解析技術入門(R編)
 
Material
MaterialMaterial
Material
 
10分で分かるr言語入門ver2.7
10分で分かるr言語入門ver2.710分で分かるr言語入門ver2.7
10分で分かるr言語入門ver2.7
 
たのしい関数型
たのしい関数型たのしい関数型
たのしい関数型
 
10分で分かるR言語入門ver2_0906
10分で分かるR言語入門ver2_090610分で分かるR言語入門ver2_0906
10分で分かるR言語入門ver2_0906
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッションYamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション
 
60分で体験する Stream / Lambda
 ハンズオン
60分で体験する Stream / Lambda
 ハンズオン60分で体験する Stream / Lambda
 ハンズオン
60分で体験する Stream / Lambda
 ハンズオン
 
rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話rstanで個人のパラメーターを推定した話
rstanで個人のパラメーターを推定した話
 
D言語にまだ入っていない新機能 (Dの日#2)
D言語にまだ入っていない新機能 (Dの日#2)D言語にまだ入っていない新機能 (Dの日#2)
D言語にまだ入っていない新機能 (Dの日#2)
 
Rstudio事始め
Rstudio事始めRstudio事始め
Rstudio事始め
 
Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2Lisp tutorial for Pythonista : Day 2
Lisp tutorial for Pythonista : Day 2
 
Tokyo r30 beginner
Tokyo r30 beginnerTokyo r30 beginner
Tokyo r30 beginner
 

Similar to 第一回ゆるふわーる

第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章Tomonobu_Hirano
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
yushin_hirano
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25Nobuaki Oshiro
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Shintaro Fukushima
 
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)Masahiro Hayashi
 
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Ra Zon
 
関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』
Kenta USAMI
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
Nobuhisa Koizumi
 
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Ra Zon
 
Rゼミ 1
Rゼミ 1Rゼミ 1
Rゼミ 1
tarokun3
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
tuchimur
 
Rブートキャンプ
RブートキャンプRブートキャンプ
Rブートキャンプ
Kosuke Sato
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話
Kazuya Wada
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
SAKAUE, Tatsuya
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)Masahiro Hayashi
 
R note 01_ver1.2
R note 01_ver1.2R note 01_ver1.2
R note 01_ver1.2
Satoshi Kume
 
C ai p3_jp_no3v1.0
C ai p3_jp_no3v1.0C ai p3_jp_no3v1.0

Similar to 第一回ゆるふわーる (20)

第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
 
Tokyor23 doradora09
Tokyor23 doradora09Tokyor23 doradora09
Tokyor23 doradora09
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
10min r study_tokyor25
10min r study_tokyor2510min r study_tokyor25
10min r study_tokyor25
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)初心者講習会資料(Osaka.r#6)
初心者講習会資料(Osaka.r#6)
 
Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]Scalaで萌える関数型プログラミング[1.1.RC1]
Scalaで萌える関数型プログラミング[1.1.RC1]
 
関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』関数型都市忘年会『はじめての函数型プログラミング』
関数型都市忘年会『はじめての函数型プログラミング』
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
 
Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]Scalaで萌える関数型プログラミング[完全版]
Scalaで萌える関数型プログラミング[完全版]
 
Rゼミ 1
Rゼミ 1Rゼミ 1
Rゼミ 1
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
Rブートキャンプ
RブートキャンプRブートキャンプ
Rブートキャンプ
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
そろそろRStudioの話
そろそろRStudioの話そろそろRStudioの話
そろそろRStudioの話
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
R note 01_ver1.2
R note 01_ver1.2R note 01_ver1.2
R note 01_ver1.2
 
C ai p3_jp_no3v1.0
C ai p3_jp_no3v1.0C ai p3_jp_no3v1.0
C ai p3_jp_no3v1.0
 

第一回ゆるふわーる

  • 1.
  • 2. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 Introduction 先生、この資料って何ですか? 「ゆるふわーる」という R 初心者のための勉強会用資料なのだそうです。 へー。こういう仕様にする必要性はあったんですか? おそらくないけれど、あえて言うなら作成者がそうしたかったのでしょうね。 ・・・・。 気を取り直して、今日の勉強会で取りあげる内容について概観してみましょう。 今日やりたいこと 1)R って何ですか? 2)インストールしてみよう・R コマンダーの入れ方 3)R コンソールに慣れよう 4)関数を使ってみよう 5)外部データを読み込んでみよう 4)グラフを描いてみよう 1
  • 3. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 1)R って何ですか? R とは、 「国際共同研究のオープンソースなプロジェ クトで開発され、GNU GPL に従って公開・配布され ている高機能な統計ソフト」のことです。 *GNU GPL: GNU General Public License (フリーソフトウェアウェアライセンスの一つ) R を使用するメリット いろんなメリッ 1) 無料である トがあるね! 2) 中身がわかって信頼性が高い 3) プログラミング可能で拡張性がある 4) 軽快な反応と対話的な操作 (昔の PC でも動きます) R は統計ソフトの側面が強調されがちですが、元はプログラミング言語ですので、分 析以外のことにも使用可能です。 詳しくは本家(Osaka.R)でチェックしてみてね!(丸投げ) R をインストールしよう インストールの前に、配布されたデータが全部あるか確認してね! まず「R-2.14.1-win.exe」をダブルクリックして フォルダ yuruR の中身 インストーラを立ち上げます。ネット環境のある方は http://cran.md.tsukuba.ac.jp/ R-2.14.1-win.exe で最新の R が手に入ります。 (Windows 用最新 ver.) R user config.hta インストール時の言語が選べるね。 (設定用ファイル) dataset.xls 2
  • 4. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 そこでは日本語ではなく英語(English)を選ぶのがオススメです。というのも、日本語を 選ぶとインストール時に以下のように文字化けが起こり、読めなくなってしまう場合があ るからです。 といっても、後で設定用ファイルを使って一気に初期設定を行いますので、ここはあ まり気にしなくても大丈夫です。 できましたー!この.hta ファイルは? インストールが完了したら、.hta ファイルをダブルクリックして下さい。 これは細かい初期設定を一気にやってくれるプログラムです。こちらで手に入ります。 http://ofmind.net/doc/r-tips#USER-CONFIG ここをクリック! R コマンダーをインストールしよう R コマンダーってなんですか? R には「R Commander」という便利なパッケージがあり、これを使うことでテキスト を打ち込む(これは R コンソールと呼ばれます)のではなく、いわゆる SPSS のようにクリッ クしながら分析が行えるようになります。 3
  • 5. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 わー!それは便利ですね。コンソールに慣れていなくても安心です。 ただし、CRAN(R の本体や、パッケージがおいてあるサーバー)からいくつかのパッ ケージをダウンロードする必要があります。以下に手順を示しておきますので、ネット環 境があるときに設定しておきましょう。 1) R を立ち上げます 2) R のコンソール(テキストを打ち込むウィンドウ)上部にある 「パッケージ」タブを選択し、 「パッケージのインストール」を選択します。 3) 「CRAN mirror」パネルから、好きなサーバーを選択します。 (Japan のどこかがオススメです) 4) 「Packages」パネルから「Rcmdr」を選択します。 (これで R コマンダー本体がダウンロード・インストールされます) 5) コンソール上の表示が止まったら、コンソール部分に以下のように入力します  library(Rcmdr) 6) 「Rcmdr が使用する以下のパッケージがありません。・・これらのパッケージをイ ンストールしますか?」というパネルが出てくるので、「はい」を選択します。 (ここで R コマンダーが必要とする他のパッケージをダウンロードします) 7) 「無いパッケージをインストールする」パネルでは「CRAN」を選択し、 「OK」を押 します。コンソールの表示が止まるとインストール完了です。 8) R コマンダーを立ち上げるには、コンソールに以下のように入力します。  library(Rcmdr) これで R コマンダーが使えるようになりますね! R コマンダーの「ヘルプ」内にある「R コマンダー入門」は日本語化されているので、 これを一通り読んでおくといいと思います。 それじゃあこれを使ってどんどん分析をしていきましょう! そうしたいところなのですが、ネット環境が無い状態を想定した勉強会ですので、R コマンダーのセッティングは各自でして頂きます。今日はせっかくなので R コンソールに 慣れることにしましょう。 ええー・・せっかく簡単にできそうだったのに・・ 4
  • 6. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 R コンソールに慣れよう 初っぱなからですが、 を終了するときのコマンドは R 「q()」です。入力してみましょう。 「作業スペースを保存しますか?」と訊かれました! R では今までやってきた履歴を保存しておくことができます。保存したい場合は「は い」を選択しましょう。また、入力時は基本的に「半角英数(日本語入力オフ) 」がベター です。 R は統計ソフトですので、単純な計算ができます。 試しに以下の式を入力して結果を確認してみましょう。 1) 3 + 2 2) 2 * 5 3) (3+2)^2/(6-1) (^はべき乗を示す) できましたー!でも、これじゃ電卓とあんまり変わりません・・ ではここからちょっとプログラミングっぽく、 「代入」をしてみましょう。 R では特定の文字に値・データを代入することができます。 代入する際は「代入先の名前 <- 代入する元」と入力します。 試しに以下のように入力してから 1), 2)を実行してみましょう。 a <- 3 b <- 2 「<-」の前後には c <- a+b 半角スペースを 1) c 忘れずに 2) c-a 先生!いろんな文字にいろいろ代入してオブジェクト(代入して作られたモノ)にして いたら、どれに何が入ってるかわからなくなりました! そんなときは「ls()」を入力すると、すでに何かが代入されている文字列が表示できま 5
  • 7. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 す。 もう要らない代入はどうしたらいいですか? 「rm()」で、括弧の中に削除したい文字列を入れると削除されます。また、全て削除す ることのできる「rm(list=ls())」という呪文もあります。何か新しい分析を始める前は、こ の呪文を使って全てのオブジェクトを削除しておくことをオススメします。また、これは 「その他」タブから「全てのオブジェクトの消去」を選択することでも可能です。 関数を使ってみよう やっとデータを扱う段階に来ましたね! 複数の列を含むデータはもう少し後の方でやります。ここでは一列だけの単純なデータ に対して、総和や平均、データの個数を数えたりしてみます。 ☆ある文字に複数のデータ(1, 2, 3)を代入するには「c()」(c:combine)を使用します。 以下のように入力してから、a を実行してみましょう。 a <- c(1,2,3) ☆オブジェクトの中のデータの個数を知りたいときは、「length()」を使用します。 先ほど作成したオブジェクト a の中のデータの個数を調べてみましょう。 length(a) ☆オブジェクトの中のデータの総和を知りたいときは、「sum()」を使用します。 先ほど作成したオブジェクト a の総和を求めてみましょう。 sum(a) さて、ここまでできたらデータの平均値を求めることができます。 はい!「sum(a)/length(a)」で求められます! よくできました。関数を使うときは括弧の中にオブジェクトを入れることで適用できる ようになりますね。それではもう少し複雑なデータを扱ってみましょう。 6
  • 8. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 外部データを読み込んでみよう それではフォルダ「yuruR」から、dataset.xls を開いて下さい。 架空の成績データですね。 1 行目が変数名、それ以降にデータが入っています。開けたら、以下のようにコピーし たい部分を範囲選択して、 「Ctrl + C」を押してコピーします(右クリックから「コピー」で も構いません)。 できました!これでデータがクリップボードにコピーされました! 次に R コンソールに戻って、 <- read.delim(“clipboard”)」と入力しましょう。以下の 「x ようにエクセルからコピーされたクリップボードのデータが、 の x というオブジェクトに R 代入されます。 7
  • 9. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 データが R で扱えるようになりましたー!ちなみに今回「x」に代入しましたが、好み の文字列で大丈夫です。 それでは R 上でこのデータの特徴について見ていきましょう。 ☆データの形式の型(class)を確認するには class 関数を使用します。 class(x) [1] “data.frame” ←数値・文字・因子などをまとめたモノ ☆オブジェクトに含まれる変数名は names 関数、データの行数(=データ数)を確認す るときは nrow 関数を使用します。 names(x) [1] “学生名” “性別” “順位” “国語” “数学” “英語” ←変数名が出力される nrow(x) [1] 20 ←データ数(20 名分)が出力される む、この形だと「国語の成績だけ見たい」場合、列ごとに見ることはできないのですか? 「オブジェクト x の中にある”国語”」というように、オブジェクトを指定することで可 能になりますよ。オブジェクトの指定は「x$国語」のように、ドルマークを挟みます。 また、直接扱えるようになる関数として、attach 関数があります。 「attach(x)」と入力する ことでその後直接変数を扱えるようになります。 できたー! 8
  • 10. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 個々の変数に対して平均(colMeans 関数)、中央値、最小値、最大値を求めることもでき るのですが、これらを一気にまとめてやってくれるのが summary 関数です。 それぞれの変数に対して最小値・第1四分位・中央値・平均値・第3四分位・最大値を 算出してくれますね。便利です!国語・数学・英語だけの平均値を見たい場合はどうした らいいでしょう? ☆変数を同時に扱いたい場合はいくつか入力方法があります。 ・colMeans(x[,4:6]) ・colMeans(x[,c(4,5,6)]) ・colMeans(x[, c(“国語”, “数学”, “英語”)]) [○, △]はデータフレーム中のどの部分を扱うかを示しています。○は列、△は行を表 しています。何も入力されなければ対象は「全て」になります。 また、番号は「□番目の列・行」を示しており、4:6(4番目から6番目まで)とまと めて指定することもできます。あるいは、個別に指定し combine 関数を使ってまとめる ことも可能です。 なお、中央値は「sapply(x[データ指定],median)」、最小値は「min()」、最大値は「max()」 でそれぞれ求めることができます。また、分散は「var()」 、標準偏差は「sd()」で求められま す。是非いろいろ試してデータの扱いに慣れてください。 グラフを描いてみよう R はきれいな図が描けることでも有名です。先ほどのデータを元にグラフを描いてみ ましょう。 ☆ここではヒストグラムと散布図のみ扱います。 ヒストグラムを描くには「hist()」、散布図は「plot()」を使用します。 hist(国語) ←国語の得点のヒストグラム plot(英語, 国語) ←「X 軸:英語、Y 軸:国語」の得点の散布図 (plot 関数では先に入れた変数が X 軸になるので注意) 簡単にグラフが描けました! 9
  • 11. Yurufuwa.R #1 (Osaka.R 女子部) 2012/02/12 さて、駆け足で R の入門をやってみましたが、時間的制約のため今回は以上としたい と思います。簡単な分析も行う予定でしたが、実はデータの扱いさえわかればあとは関数 を適用していくだけですので、是非ご自身でいろいろな関数を発掘してみてください。 R コマンダーも使ってみてね! 以下に今回参考にした書籍とサイト、および非常に参考になるサイトをまとめておき ますのでご活用ください。皆様の R ユーザーとして第一歩を後押しできたのなら幸いです。 また第二回で会おうね! ☆参考文献 「R による心理・調査データ解析」著:緒賀郷志 東京図書 (本資料はこちらの図書を全面的に参考にさせていただきました) ☆参考サイト http://www.okada.jp.org/RWiki/ (言わずと知れた Rwiki です。R について日本語で調べたい場合はこちらへ) http://phi.med.gunma-u.ac.jp/swtips/R.html (R のインストールに関してはこちらを参考にしました) http://plaza.umin.ac.jp/~takeshou/R/index.html (R コマンダーのインストールなどはこちらを参考にしました) 本資料の文責は全て@nanaya_sac にあります。 お問い合わせや修正・改善のご要望は twitter でどうぞ。 また、本資料では繭子さん(http://iamhoppe.jugem.jp/)よりイラストを提供して頂きまし た。イラストの著作権は繭子さんに属します。 Have a nice R life! 10