More Related Content Similar to 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと Similar to 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと (20) 12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと 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: 使い方の例