SlideShare a Scribd company logo
1 of 24
12/11/16


初めてのR
R を始める前に知っておきたい 10 のこと
R を始める前に知っておきたい 10 のこと
R を始める前に知っておきたい 10 のこと
             そんなに知る必要はなかったかもし
             そんなに知る必要はなかったかもし
             れません…
             れません…




@yuifu
Rはとっつきやすい
•     Rは CUI とかプログラミングをあまりや
      ったことない人でも使える

       •      パッケージが充実

       •      生物系や人文系も使う(統計に必要
              だからといった理由)

       •      ネットでドキュメントも充実




http://www.flickr.com/photos/geekdreams/4981490170/in/photostream
トラブルもある…
•    Rを扱うのに情報系の知識がないと
     トラブルに陥りがち

      •      マニュアル通りにできればいいけ
             どエラーに対応できない

      •      Rの中身,言語の特性を知ってい
             れば色々捗る




http://www.flickr.com/photos/geekdreams/4980887029/
知っておくと便利なことがある
• 本発表では,
  • プログラミングとかコマン
              ド入力に不慣れな人が

       • Rを始める上で知っておく
              と色々捗るぞ

       • なことを概説する




http://www.flickr.com/photos/geekdreams/4980892135/in/photostream
今日の内容
1 . 代入
2. データ型
3. データ構造
4. 引数と戻り値
5. ディレクトリ
6. データの入出力
7. デフォルト
8. 実行される順番
9. RStudio
1 0.ヘルプ




http://www.flickr.com/photos/geekdreams/4982938127/sizes/l/in/photostream/
代入
•   変数に値を入れることを代入という
                                                                                        1
    •   容れ物 <- 入れたいもの




          x <- 1

          > result <- t.test(a, na.action=T)> result    One Sample t-testdata: a t =
          5.7446, df = 9, p-value = 0.0002782alternative hypothesis: true mean is not
          equal to 0 95 percent confidence interval: 3.334149 7.665851 sample
          estimates:mean of x        5.5
データ型
•   Rではすべてがオブジェクト
                                                           2
    •   それぞれのオブジェクトが1つの
        クラスに属する class( )

    •   オブジェクトには長さがある        > (x <- matrix(0, 2, 3)) [,1] [,2] [,3]
        length( )            [1,] 0 0 0[2,] 0 0 0>
                             class(x)[1] "matrix"> mode(x)[1]
    •   すべてのオブジェクトにはデータ      "numeric"> length(x)[1] 6
        型またはモードがある mode( )
データ型
•   atomic なデータ型( type )
                                                                      2
    •   NULL: 空の値

    •   logical: 論理値( TRUE/FALSE/NA )

    •   numeric: 整数・実数                  > (x <- matrix(0, 2, 3)) [,1] [,2] [,3]
                                        [1,] 0 0 0[2,] 0 0 0>
    •   complex: 複素数                    class(x)[1] "matrix"> mode(x)[1]
    •   character: 文字・文字列               "numeric"> length(x)[1] 6

•   下のデータ型は上のデータ型を表現可能

    •   下のデータ型を上のデータ型に変換する
        と情報の損失がおこる

•   あと factor (カテゴリカル変数)も
データ型
•   あるデータ型のオブジェクトをつく
                                                        2
    る

    •   numeric( ) など

•   あるデータ型かどうかを確かめる
                           > (a <- numeric(1))[1] 0>
    •   is.numeric( ) など   is.character(a)[1] FALSE>
                           is.logical(a)[1] FALSE> is.numeric(a)
•   データ型を変換する              [1] TRUE> b <- 3.14> as.logical(b)[1]
                           TRUE
    •   as.numeric( ) など   > b * 5[1] 15.7> as.logical(b) * 5[1] 5>
                           as.character(b)[1] "3.14"
データ構造
•   データ構造 : 色んなデータ型のオブジェクトを集めたもの
                                            3
•   同じデータ型のオブジェクトのみから成るもの

    •   ベクトル vector : 1 次元

    •   行列 matrix : 2 次元

    •   配列 array : 多次元

•   異なるデータ型のオブジェクトから成るもの

    •   リスト list : 何でも

    •   データフレーム data frame : 特殊なリスト(各要素は同じ長さのベクト
        ル)
データ構造
•   つくりかた
                                                                                                   3
    •   ベクトルは色々

        •   c( )

        •   rep( )      > (x <- c("Alice", "Bob"))[1] "Alice" "Bob"
                        > (a <- matrix(1:10, 2, 5)) [,1] [,2] [,3] [,4] [,5][1,]   1   3   5   7   9[2,]   2   4
        •   seq( )        6 8 10

                        > (l <- list(c(1,2,3,4), matrix(1:4, 2, 2)))[[1]][1] 1 2 3 4[[2]] [,1] [,2][1,] 1 3[2,]
    •   matrix( )         2 4
                        > (d <- data.frame(name = c("Nobita", "Takeshi", "Shizuka"), sex=c("M", "M",
    •   array( )        "F"), age = c(11, 12, 11))) name sex age1 Nobita M 112 Takeshi M 123
                        Shizuka F 11

    •   list( )

    •   data.frame( )
データ構造
•   要素へのアクセス
                                                                3
    •   ベクトル : x[1]

    •   行列 : x[1, 2]

    •   配列 : x[1, 2, 2]   > x[1][1] "Alice"

    •   リスト : x[[1]]      > a[1,2][1] 3

                          > l[[1]][1] 1 2 3 4> l[[1]][2][1] 2
    •   データフレーム : 色々
                          > d[[1]][1] Nobita Takeshi ShizukaLevels: Nobita
                          Shizuka Takeshi> d[1] name1 Nobita2
                          Takeshi3 Shizuka> d[1,2][1] MLevels: F M
引数と戻り値
•   引数 augment
                                                             4
    •   関数に与える設定値(パラメータとも)

    •   「ひきすう」と読む
                         > t.test(a, na.action=T)    One Sample t-
•   戻り値 return value     testdata: a t = 5.7446, df = 9, p-value =
                         0.0002782alternative hypothesis: true mean is not
                         equal to 0 95 percent confidence interval:
    •   関数が返す値(計算結果とか)   3.334149 7.665851 sample estimates:mean of x
                           5.5
ディレクトリ
•   「なぜ ここにいる?」
                                                                    5
    •   R を実行するとき,ツリー構造のどこかに必ずいる(作業ディレクト
        リ)

        •   ディレクトリ構造はツリーで表される

•   「でも僕は分からない僕はどこにいるんだ僕って何なんだ僕って何なん
    だ!」

    •   作業ディレクトリの確認 : getwd( )

•   「僕はここにいてもいいんだ!」                  > getwd()[1] "/Users/haruka"

    •   作業ディレクトリの変更 : setwd( ) > setwd("Dropbox/")> getwd()[1]
                                     "/Users/haruka/Dropbox">
                                     setwd("/Users/haruka/")
データの入出力
•   入力
                                                      6
    •   read.table(“ ファイルへのパス” , header=T, sep=”,”)

        •   表形式を想定

            •   エラーが出たら,どこかが表形式になっていない

•   出力

    •   write.table( オブジェクト,”出力ファイルのパス” , sep=”t”)
デフォルト
•   こちらで指定しないと自動的に設定される引数がある(デフォルト設定)
                                                                                                          7
    •   なんかうまくいかなかったらデフォルトをチェックしてみてもいいかも




 read.table(file, header = FALSE, sep = "", quote = ""'",            dec = ".", row.names, col.names,
     as.is = !stringsAsFactors,         na.strings = "NA", colClasses = NA, nrows = -1,               skip =
0, check.names = TRUE, fill = !blank.lines.skip,             strip.white = FALSE, blank.lines.skip = TRUE,
          comment.char = "#",           allowEscapes = FALSE, flush = FALSE,
stringsAsFactors = default.stringsAsFactors(),             fileEncoding = "", encoding = "unknown", text)
実行される順番
•   複数のコマンドをどういう順番で実
                                                                            8
    行するか

•   逐次処理 : 普通に実行

•   if 文:条件式が真であると中身を実行

•   ループ制御
                                    > a <- 1; a <- a + 1;> a[1] 2
    •   for 文 : ベクトルで条件を指定
                                    > if(FALSE){1}else if(TRUE){2}else{3}[1] 2

    •   while 文:条件式をループごとに          > x <- 0> for(i in 1:10){+ x <- x + i+ }> x[1] 55
        評価する
                                    > while(x>0){+ x <- x -10+ }> x[1] -5
    •   制御語 : repeat, next, break
RStudio
•   R の開発環境

•   http://www.rstudio.org

•   エディタでスクリプト書い
    てコピペするより便利
RStudio
•   R の開発環境
                             9
•   http://www.rstudio.org

•   エディタでスクリプト書い
    てコピペするより便利
RStudio
•   R の開発環境
                             9
•   http://www.rstudio.org

•   エディタでスクリプト書い
    てコピペするより便利



•   コンソール : R のコマンド
    を実行するところ

•   ワークスペース : オブジェ
    クトが保持されているとこ
    ろ
ヘルプ
•   ? ほげ
                                                    10
•   ヘルプの構造                        > ?boxplot
                                  > help(boxplot)
    •   Description: 簡単な説明

    •   Usage: 使い方( formal な記述)

    •   Arguments: 引数(パラメタ)

    •   Details: 詳細な説明(補足)

    •   Value: どんな値を返すか

    •   References: 参考文献

    •   See Also: 関連する関数など

    •   Examples: 使い方の例
ヘルプ
•   ? ほげ
                                  10
•   ヘルプの構造

    •   Description: 簡単な説明

    •   Usage: 使い方( formal な記述)

    •   Arguments: 引数(パラメタ)

    •   Details: 詳細な説明(補足)

    •   Value: どんな値を返すか

    •   References: 参考文献

    •   See Also: 関連する関数など

    •   Examples: 使い方の例
ヘルプ
•   ? ほげ
                                  10
•   ヘルプの構造

    •   Description: 簡単な説明

    •   Usage: 使い方( formal な記述)

    •   Arguments: 引数(パラメタ)

    •   Details: 詳細な説明(補足)

    •   Value: どんな値を返すか

    •   References: 参考文献

    •   See Also: 関連する関数など

    •   Examples: 使い方の例
ヘルプ
•   ? ほげ
                                  10
•   ヘルプの構造

    •   Description: 簡単な説明

    •   Usage: 使い方( formal な記述)

    •   Arguments: 引数(パラメタ)

    •   Details: 詳細な説明(補足)

    •   Value: どんな値を返すか

    •   References: 参考文献

    •   See Also: 関連する関数など

    •   Examples: 使い方の例

More Related Content

What's hot

Javaプログラミング入門【第5回】
Javaプログラミング入門【第5回】Javaプログラミング入門【第5回】
Javaプログラミング入門【第5回】Yukiko Kato
 
Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)Nagi Teramo
 
Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】Yukiko Kato
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101Nobuaki Oshiro
 
Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション考司 小杉
 
プログラマのための文書推薦入門
プログラマのための文書推薦入門プログラマのための文書推薦入門
プログラマのための文書推薦入門y-uti
 
C#を始めたばかりの人へのLINQ to Objects
C#を始めたばかりの人へのLINQ to ObjectsC#を始めたばかりの人へのLINQ to Objects
C#を始めたばかりの人へのLINQ to ObjectsFumitaka Yamada
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類Tetsuya Hasegawa
 
Rによる分類木 入門
Rによる分類木 入門Rによる分類木 入門
Rによる分類木 入門Hiro47
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木 Miyoshi Yuya
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」Nagi Teramo
 
Javaプログラミング入門【第4回】
Javaプログラミング入門【第4回】Javaプログラミング入門【第4回】
Javaプログラミング入門【第4回】Yukiko Kato
 
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッションYamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション考司 小杉
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPIDaisuke Igarashi
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用Nobuaki Oshiro
 
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~Fujio Kojima
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905Nobuaki Oshiro
 

What's hot (20)

Project lambda
Project lambdaProject lambda
Project lambda
 
Javaプログラミング入門【第5回】
Javaプログラミング入門【第5回】Javaプログラミング入門【第5回】
Javaプログラミング入門【第5回】
 
Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)Chapter 6: Computing on the language (R Language Definition)
Chapter 6: Computing on the language (R Language Definition)
 
Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】Javaデザインパターン入門【第3回】
Javaデザインパターン入門【第3回】
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
 
プログラマのための文書推薦入門
プログラマのための文書推薦入門プログラマのための文書推薦入門
プログラマのための文書推薦入門
 
C#を始めたばかりの人へのLINQ to Objects
C#を始めたばかりの人へのLINQ to ObjectsC#を始めたばかりの人へのLINQ to Objects
C#を始めたばかりの人へのLINQ to Objects
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
 
Rによる分類木 入門
Rによる分類木 入門Rによる分類木 入門
Rによる分類木 入門
 
パターン認識 第10章 決定木
パターン認識 第10章 決定木 パターン認識 第10章 決定木
パターン認識 第10章 決定木
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
 
HiRoshimaR3_IntroR
HiRoshimaR3_IntroRHiRoshimaR3_IntroR
HiRoshimaR3_IntroR
 
Javaプログラミング入門【第4回】
Javaプログラミング入門【第4回】Javaプログラミング入門【第4回】
Javaプログラミング入門【第4回】
 
Yamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッションYamadai.R チュートリアルセッション
Yamadai.R チュートリアルセッション
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPI
 
10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用10分で分かるr言語入門ver2 upload用
10分で分かるr言語入門ver2 upload用
 
LDA入門
LDA入門LDA入門
LDA入門
 
C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~C# LINQ ~深く知って、使いまくろう~
C# LINQ ~深く知って、使いまくろう~
 
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 090510分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
 

Viewers also liked

Linked Open Data With R
Linked Open Data With RLinked Open Data With R
Linked Open Data With RIida Keisuke
 
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理Ken'ichi Matsui
 
統計学の基礎の基礎
統計学の基礎の基礎統計学の基礎の基礎
統計学の基礎の基礎Ken'ichi Matsui
 
Excelによる遺伝子名の誤変換 -傾向と対策-
Excelによる遺伝子名の誤変換 -傾向と対策-Excelによる遺伝子名の誤変換 -傾向と対策-
Excelによる遺伝子名の誤変換 -傾向と対策-Haruka Ozaki
 
ISMB2014読み会 Ragout—a reference-assisted assembly tool for bacterial genomes
ISMB2014読み会 Ragout—a reference-assisted assembly tool for bacterial genomesISMB2014読み会 Ragout—a reference-assisted assembly tool for bacterial genomes
ISMB2014読み会 Ragout—a reference-assisted assembly tool for bacterial genomesHaruka Ozaki
 
RPubs とその Bot たち
RPubs とその Bot たちRPubs とその Bot たち
RPubs とその Bot たちhoxo_m
 
距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでしたHaruka Ozaki
 
Rで塩基配列を扱う方法
Rで塩基配列を扱う方法Rで塩基配列を扱う方法
Rで塩基配列を扱う方法Haruka Ozaki
 
Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!yutannihilation
 
Kashiwa.R#9 Rでゲノム解析
Kashiwa.R#9 Rでゲノム解析Kashiwa.R#9 Rでゲノム解析
Kashiwa.R#9 Rでゲノム解析Haruka Ozaki
 
Rでゲノム上の区間データを扱う話 (15.09.05 WACODE 2nd)
Rでゲノム上の区間データを扱う話 (15.09.05 WACODE 2nd)Rでゲノム上の区間データを扱う話 (15.09.05 WACODE 2nd)
Rでゲノム上の区間データを扱う話 (15.09.05 WACODE 2nd)Haruka Ozaki
 
160817 ISMB2016読み会
160817 ISMB2016読み会160817 ISMB2016読み会
160817 ISMB2016読み会Haruka Ozaki
 
第1回JUnit勉強会ハンズオン
第1回JUnit勉強会ハンズオン第1回JUnit勉強会ハンズオン
第1回JUnit勉強会ハンズオンequj65
 
トピックモデル勉強会: 第2章 Latent Dirichlet Allocation
トピックモデル勉強会: 第2章 Latent Dirichlet Allocationトピックモデル勉強会: 第2章 Latent Dirichlet Allocation
トピックモデル勉強会: 第2章 Latent Dirichlet AllocationHaruka Ozaki
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」Preferred Networks
 
FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)Haruka Ozaki
 
データマイニング入門
データマイニング入門データマイニング入門
データマイニング入門hrfm
 
巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table についてHaruka Ozaki
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明Haruka Ozaki
 

Viewers also liked (20)

Linked Open Data With R
Linked Open Data With RLinked Open Data With R
Linked Open Data With R
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
 
統計学の基礎の基礎
統計学の基礎の基礎統計学の基礎の基礎
統計学の基礎の基礎
 
Excelによる遺伝子名の誤変換 -傾向と対策-
Excelによる遺伝子名の誤変換 -傾向と対策-Excelによる遺伝子名の誤変換 -傾向と対策-
Excelによる遺伝子名の誤変換 -傾向と対策-
 
ISMB2014読み会 Ragout—a reference-assisted assembly tool for bacterial genomes
ISMB2014読み会 Ragout—a reference-assisted assembly tool for bacterial genomesISMB2014読み会 Ragout—a reference-assisted assembly tool for bacterial genomes
ISMB2014読み会 Ragout—a reference-assisted assembly tool for bacterial genomes
 
RPubs とその Bot たち
RPubs とその Bot たちRPubs とその Bot たち
RPubs とその Bot たち
 
距離まとめられませんでした
距離まとめられませんでした距離まとめられませんでした
距離まとめられませんでした
 
Rで塩基配列を扱う方法
Rで塩基配列を扱う方法Rで塩基配列を扱う方法
Rで塩基配列を扱う方法
 
Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!Github pagesでRPubsにサヨナラ!
Github pagesでRPubsにサヨナラ!
 
Kashiwa.R#9 Rでゲノム解析
Kashiwa.R#9 Rでゲノム解析Kashiwa.R#9 Rでゲノム解析
Kashiwa.R#9 Rでゲノム解析
 
Rでゲノム上の区間データを扱う話 (15.09.05 WACODE 2nd)
Rでゲノム上の区間データを扱う話 (15.09.05 WACODE 2nd)Rでゲノム上の区間データを扱う話 (15.09.05 WACODE 2nd)
Rでゲノム上の区間データを扱う話 (15.09.05 WACODE 2nd)
 
160817 ISMB2016読み会
160817 ISMB2016読み会160817 ISMB2016読み会
160817 ISMB2016読み会
 
第1回JUnit勉強会ハンズオン
第1回JUnit勉強会ハンズオン第1回JUnit勉強会ハンズオン
第1回JUnit勉強会ハンズオン
 
トピックモデル勉強会: 第2章 Latent Dirichlet Allocation
トピックモデル勉強会: 第2章 Latent Dirichlet Allocationトピックモデル勉強会: 第2章 Latent Dirichlet Allocation
トピックモデル勉強会: 第2章 Latent Dirichlet Allocation
 
PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」PFIセミナー 2013/02/28 「プログラミング言語の今」
PFIセミナー 2013/02/28 「プログラミング言語の今」
 
FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)FDRの使い方 (Kashiwa.R #3)
FDRの使い方 (Kashiwa.R #3)
 
データマイニング入門
データマイニング入門データマイニング入門
データマイニング入門
 
巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について巨大な表を高速に扱うData.table について
巨大な表を高速に扱うData.table について
 
変分ベイズ法の説明
変分ベイズ法の説明変分ベイズ法の説明
変分ベイズ法の説明
 

Similar to 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと

Python勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイルPython勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイル理 小林
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Prunus 1350
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010Nobuaki Oshiro
 
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門Takashi Kitano
 
Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeRuby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeMasahiro Tanaka
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201t2tarumi
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Shintaro Fukushima
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2Masao Kato
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)Masahiro Hayashi
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門Hideyuki Tanaka
 
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターgenuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターsohta
 
Scalaプログラミング・マニアックス
Scalaプログラミング・マニアックスScalaプログラミング・マニアックス
Scalaプログラミング・マニアックスTomoharu ASAMI
 
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5Nishida Kansuke
 
10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712 10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712 Nobuaki Oshiro
 
Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Yusaku Kawaguchi
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門Yuichiro Kobayashi
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)Masahiro Hayashi
 

Similar to 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと (20)

Python勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイルPython勉強会3-コレクションとファイル
Python勉強会3-コレクションとファイル
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
 
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 101010分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
 
20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門20170923 excelユーザーのためのr入門
20170923 excelユーザーのためのr入門
 
Ruby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrakeRuby科学データ処理ツールの開発 NArrayとPwrake
Ruby科学データ処理ツールの開発 NArrayとPwrake
 
K010 appstat201201
K010 appstat201201K010 appstat201201
K010 appstat201201
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
 
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターgenuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
 
Scalaプログラミング・マニアックス
Scalaプログラミング・マニアックスScalaプログラミング・マニアックス
Scalaプログラミング・マニアックス
 
Python opt
Python optPython opt
Python opt
 
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5
 
Tokyo r28 1
Tokyo r28 1Tokyo r28 1
Tokyo r28 1
 
10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712 10分で分かるr言語入門ver2.8 14 0712
10分で分かるr言語入門ver2.8 14 0712
 
Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約Rを用いた外国語教育データの整理・要約
Rを用いた外国語教育データの整理・要約
 
R language definition3.1_3.2
R language definition3.1_3.2R language definition3.1_3.2
R language definition3.1_3.2
 
LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門LET2011: Rによる教育データ分析入門
LET2011: Rによる教育データ分析入門
 
初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)初心者講習会資料(Osaka.R#7)
初心者講習会資料(Osaka.R#7)
 

12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと

  • 1. 12/11/16 初めてのR R を始める前に知っておきたい 10 のこと R を始める前に知っておきたい 10 のこと R を始める前に知っておきたい 10 のこと そんなに知る必要はなかったかもし そんなに知る必要はなかったかもし れません… れません… @yuifu
  • 2. Rはとっつきやすい • Rは CUI とかプログラミングをあまりや ったことない人でも使える • パッケージが充実 • 生物系や人文系も使う(統計に必要 だからといった理由) • ネットでドキュメントも充実 http://www.flickr.com/photos/geekdreams/4981490170/in/photostream
  • 3. トラブルもある… • Rを扱うのに情報系の知識がないと トラブルに陥りがち • マニュアル通りにできればいいけ どエラーに対応できない • Rの中身,言語の特性を知ってい れば色々捗る http://www.flickr.com/photos/geekdreams/4980887029/
  • 4. 知っておくと便利なことがある • 本発表では, • プログラミングとかコマン ド入力に不慣れな人が • Rを始める上で知っておく と色々捗るぞ • なことを概説する http://www.flickr.com/photos/geekdreams/4980892135/in/photostream
  • 5. 今日の内容 1 . 代入 2. データ型 3. データ構造 4. 引数と戻り値 5. ディレクトリ 6. データの入出力 7. デフォルト 8. 実行される順番 9. RStudio 1 0.ヘルプ http://www.flickr.com/photos/geekdreams/4982938127/sizes/l/in/photostream/
  • 6. 代入 • 変数に値を入れることを代入という 1 • 容れ物 <- 入れたいもの x <- 1 > result <- t.test(a, na.action=T)> result One Sample t-testdata: a t = 5.7446, df = 9, p-value = 0.0002782alternative hypothesis: true mean is not equal to 0 95 percent confidence interval: 3.334149 7.665851 sample estimates:mean of x 5.5
  • 7. データ型 • Rではすべてがオブジェクト 2 • それぞれのオブジェクトが1つの クラスに属する class( ) • オブジェクトには長さがある > (x <- matrix(0, 2, 3)) [,1] [,2] [,3] length( ) [1,] 0 0 0[2,] 0 0 0> class(x)[1] "matrix"> mode(x)[1] • すべてのオブジェクトにはデータ "numeric"> length(x)[1] 6 型またはモードがある mode( )
  • 8. データ型 • atomic なデータ型( type ) 2 • NULL: 空の値 • logical: 論理値( TRUE/FALSE/NA ) • numeric: 整数・実数 > (x <- matrix(0, 2, 3)) [,1] [,2] [,3] [1,] 0 0 0[2,] 0 0 0> • complex: 複素数 class(x)[1] "matrix"> mode(x)[1] • character: 文字・文字列 "numeric"> length(x)[1] 6 • 下のデータ型は上のデータ型を表現可能 • 下のデータ型を上のデータ型に変換する と情報の損失がおこる • あと factor (カテゴリカル変数)も
  • 9. データ型 • あるデータ型のオブジェクトをつく 2 る • numeric( ) など • あるデータ型かどうかを確かめる > (a <- numeric(1))[1] 0> • is.numeric( ) など is.character(a)[1] FALSE> is.logical(a)[1] FALSE> is.numeric(a) • データ型を変換する [1] TRUE> b <- 3.14> as.logical(b)[1] TRUE • as.numeric( ) など > b * 5[1] 15.7> as.logical(b) * 5[1] 5> as.character(b)[1] "3.14"
  • 10. データ構造 • データ構造 : 色んなデータ型のオブジェクトを集めたもの 3 • 同じデータ型のオブジェクトのみから成るもの • ベクトル vector : 1 次元 • 行列 matrix : 2 次元 • 配列 array : 多次元 • 異なるデータ型のオブジェクトから成るもの • リスト list : 何でも • データフレーム data frame : 特殊なリスト(各要素は同じ長さのベクト ル)
  • 11. データ構造 • つくりかた 3 • ベクトルは色々 • c( ) • rep( ) > (x <- c("Alice", "Bob"))[1] "Alice" "Bob" > (a <- matrix(1:10, 2, 5)) [,1] [,2] [,3] [,4] [,5][1,] 1 3 5 7 9[2,] 2 4 • seq( ) 6 8 10 > (l <- list(c(1,2,3,4), matrix(1:4, 2, 2)))[[1]][1] 1 2 3 4[[2]] [,1] [,2][1,] 1 3[2,] • matrix( ) 2 4 > (d <- data.frame(name = c("Nobita", "Takeshi", "Shizuka"), sex=c("M", "M", • array( ) "F"), age = c(11, 12, 11))) name sex age1 Nobita M 112 Takeshi M 123 Shizuka F 11 • list( ) • data.frame( )
  • 12. データ構造 • 要素へのアクセス 3 • ベクトル : x[1] • 行列 : x[1, 2] • 配列 : x[1, 2, 2] > x[1][1] "Alice" • リスト : x[[1]] > a[1,2][1] 3 > l[[1]][1] 1 2 3 4> l[[1]][2][1] 2 • データフレーム : 色々 > d[[1]][1] Nobita Takeshi ShizukaLevels: Nobita Shizuka Takeshi> d[1] name1 Nobita2 Takeshi3 Shizuka> d[1,2][1] MLevels: F M
  • 13. 引数と戻り値 • 引数 augment 4 • 関数に与える設定値(パラメータとも) • 「ひきすう」と読む > t.test(a, na.action=T) One Sample t- • 戻り値 return value testdata: a t = 5.7446, df = 9, p-value = 0.0002782alternative hypothesis: true mean is not equal to 0 95 percent confidence interval: • 関数が返す値(計算結果とか) 3.334149 7.665851 sample estimates:mean of x 5.5
  • 14. ディレクトリ • 「なぜ ここにいる?」 5 • R を実行するとき,ツリー構造のどこかに必ずいる(作業ディレクト リ) • ディレクトリ構造はツリーで表される • 「でも僕は分からない僕はどこにいるんだ僕って何なんだ僕って何なん だ!」 • 作業ディレクトリの確認 : getwd( ) • 「僕はここにいてもいいんだ!」 > getwd()[1] "/Users/haruka" • 作業ディレクトリの変更 : setwd( ) > setwd("Dropbox/")> getwd()[1] "/Users/haruka/Dropbox"> setwd("/Users/haruka/")
  • 15. データの入出力 • 入力 6 • read.table(“ ファイルへのパス” , header=T, sep=”,”) • 表形式を想定 • エラーが出たら,どこかが表形式になっていない • 出力 • write.table( オブジェクト,”出力ファイルのパス” , sep=”t”)
  • 16. デフォルト • こちらで指定しないと自動的に設定される引数がある(デフォルト設定) 7 • なんかうまくいかなかったらデフォルトをチェックしてみてもいいかも read.table(file, header = FALSE, sep = "", quote = ""'", dec = ".", row.names, col.names, as.is = !stringsAsFactors, na.strings = "NA", colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#", allowEscapes = FALSE, flush = FALSE, stringsAsFactors = default.stringsAsFactors(), fileEncoding = "", encoding = "unknown", text)
  • 17. 実行される順番 • 複数のコマンドをどういう順番で実 8 行するか • 逐次処理 : 普通に実行 • if 文:条件式が真であると中身を実行 • ループ制御 > a <- 1; a <- a + 1;> a[1] 2 • for 文 : ベクトルで条件を指定 > if(FALSE){1}else if(TRUE){2}else{3}[1] 2 • while 文:条件式をループごとに > x <- 0> for(i in 1:10){+ x <- x + i+ }> x[1] 55 評価する > while(x>0){+ x <- x -10+ }> x[1] -5 • 制御語 : repeat, next, break
  • 18. RStudio • R の開発環境 • http://www.rstudio.org • エディタでスクリプト書い てコピペするより便利
  • 19. RStudio • R の開発環境 9 • http://www.rstudio.org • エディタでスクリプト書い てコピペするより便利
  • 20. RStudio • R の開発環境 9 • http://www.rstudio.org • エディタでスクリプト書い てコピペするより便利 • コンソール : R のコマンド を実行するところ • ワークスペース : オブジェ クトが保持されているとこ ろ
  • 21. ヘルプ • ? ほげ 10 • ヘルプの構造 > ?boxplot > help(boxplot) • Description: 簡単な説明 • Usage: 使い方( formal な記述) • Arguments: 引数(パラメタ) • Details: 詳細な説明(補足) • Value: どんな値を返すか • References: 参考文献 • See Also: 関連する関数など • Examples: 使い方の例
  • 22. ヘルプ • ? ほげ 10 • ヘルプの構造 • Description: 簡単な説明 • Usage: 使い方( formal な記述) • Arguments: 引数(パラメタ) • Details: 詳細な説明(補足) • Value: どんな値を返すか • References: 参考文献 • See Also: 関連する関数など • Examples: 使い方の例
  • 23. ヘルプ • ? ほげ 10 • ヘルプの構造 • Description: 簡単な説明 • Usage: 使い方( formal な記述) • Arguments: 引数(パラメタ) • Details: 詳細な説明(補足) • Value: どんな値を返すか • References: 参考文献 • See Also: 関連する関数など • Examples: 使い方の例
  • 24. ヘルプ • ? ほげ 10 • ヘルプの構造 • Description: 簡単な説明 • Usage: 使い方( formal な記述) • Arguments: 引数(パラメタ) • Details: 詳細な説明(補足) • Value: どんな値を返すか • References: 参考文献 • See Also: 関連する関数など • Examples: 使い方の例