sapporo.r #2 初心者向けws資料

107
始めよう,R SappoRo.R 初心者向けワークショップ 1

Upload: -

Post on 11-Jul-2015

1.582 views

Category:

Education


2 download

TRANSCRIPT

Page 1: SappoRo.R #2 初心者向けWS資料

始めよう,RSappoRo.R 初心者向けワークショップ

1

Page 2: SappoRo.R #2 初心者向けWS資料

MENU

• 【啓蒙編】Rは何がよいのか,あるいは私はいかにしてRに手を染めるようになったか

• 【入門編】R環境の導入とRでできる基本的なこと

• 【実践編】Rをもっと便利に使いましょう

2

Page 3: SappoRo.R #2 初心者向けWS資料

自己紹介• なまえ;小杉考司(Twitter @kosugitti)

• しょぞく;山口大学教育学部教育心理学コース

• せんもん;社会心理学,または心理学的統計法

• けいれき;関西大学/関西学院大学→山口大学

• 「都会/マンモス/私立」から「地方/少数/国立」へ

3

Page 4: SappoRo.R #2 初心者向けWS資料

【啓蒙編】

• Rを始めるべき理由,あるいはいかに私はRを始めるようになったか.

4

Page 5: SappoRo.R #2 初心者向けWS資料

Rを使い始めた理由「研究編」• 2007年着任当時,SPSSを持っていなかったし,ユーザ数が少ない地方国立大学では,全学的にフォローしてくれる環境もなかった。

• 研究をするために,基本的な統計処理と構造方程式モデリングをする環境を自分で整えなければならなかった。

• 毎年のようにバージョンアップされるSPSSを追いかける気力・体力・資金力がなかった。

5

Page 6: SappoRo.R #2 初心者向けWS資料

Rを使い始めた理由「研究編」

• 当時尺度開発の研究を行っていて,項目反応理論を扱えるソフトウェアが欲しかった。以前はBILOG-MG,Parscaleなど専門ソフトを買ってもらっていたが,それも自分で用意する必要があった。

• 統計手法のコレクターでもあったので,テキストマイニングや数量化理論,MDS(特に非対称)など,とにかく色々な統計手法が自由に使いたかった。

6

Page 7: SappoRo.R #2 初心者向けWS資料

そこで    ですよ• フリーソフトウェアなので簡単に導入できた。

• 基本関数が豊かだったので自分でプログラムを書くのも簡単にできた(複素数に対応した固有値分解関数!)

• MDS,IRTなどはパッケージを追加するだけで簡単に実行できた。

• 青木先生のサイトなど既に十分なインターネット上の情報公開,関数提供がなされていた=テキストも無料だった

7

Page 8: SappoRo.R #2 初心者向けWS資料

Rを使い始めた理由「教育編」

• 学生の研究室に共同利用するPCが三台あった。学部生にひとつ,M1/M2にひとつずつ。そこには古いSPSSとHALBAWが導入されていた。

• 学生は一人一台のノートPCを持たせることを推奨していたので,皆PCはもっていたが,卒論・修論の時期になると分析と印刷は共同PCで行うので,混雑することが多かった。

8

Page 9: SappoRo.R #2 初心者向けWS資料

Rを使い始めた理由「教育編」• 統計がGUI環境で簡単に実行できることが,かろうじて文系の学生にも受け入れられる理由であったが,教育上少なくとも3つの問題があった。

1. 操作の意味を分からないまま身につけている。

2. 同じことを何度もやってみせて教えなければならない。

3. エラーが生じた時,再現性が確保されない。9

Page 10: SappoRo.R #2 初心者向けWS資料

そこで    ですよ

• フリーソフトウェアなので個々人に導入できた。

• コマンドを書くのは大変な労力ではあったが,「今何をしているか」を考えさせる役に立った。

• データを共有するだけで,どこででも再現できたので,忙しいときはメールだけで指導できた。

10

Page 11: SappoRo.R #2 初心者向けWS資料

当初は苦労した

• CUIのハードルの高さが,個人的には問題なかったが,学生にはやたら高く感じられるようであった。

• コードの代筆としてRcmdrを使っていたが,関数がお仕着せだったりマシンによっては非常に鈍重な動きになっていた。

• 入門書,特にパッケージに関する解説本が少なかった。

11

Page 12: SappoRo.R #2 初心者向けWS資料

いまはもう    だけ• プラットフォームとして確立した感がある

• RstudioなどIDE環境が整った

• 動作が特に重く感じることはなくなってきた

• ダウンロード・インストールに関する意識,あるいはコマンドを使うということに関する学生の意識が変わってきた

12

Page 13: SappoRo.R #2 初心者向けWS資料

まとめ

やすい!

ひろい!

はやい!

13

Page 14: SappoRo.R #2 初心者向けWS資料

こっちこいよ!

• サンプルデータが防府豊富にあるので教材としても優れている

• 乗り換えを考えている人は,とりあえず「データファイルの読み込み」と「データの整形」の山をこえれば後は問題ない

• 乗り換えの精神は「背水の陣」と「信じるものは救われる」

14

Page 15: SappoRo.R #2 初心者向けWS資料

【入門編】Rでできる基本的なこと

15

Page 16: SappoRo.R #2 初心者向けWS資料

subMENU

• R環境の導入

• Rとの対話

• 関数とヘルプ• 数をセットで扱う• 表計算ソフトとは違うよ• 試しにやってみよう1

• 代入しておけるオブジェクト• リストとデータフレーム• 数字の種類• 試しにやってみよう2

16

Page 17: SappoRo.R #2 初心者向けWS資料

Rを導入しよう• 「R」一文字では検索できないので,「Rproject」で検索してみましょう。

17

Page 18: SappoRo.R #2 初心者向けWS資料

18

Page 19: SappoRo.R #2 初心者向けWS資料

19

Page 20: SappoRo.R #2 初心者向けWS資料

20

Page 21: SappoRo.R #2 初心者向けWS資料

21

Page 22: SappoRo.R #2 初心者向けWS資料

Rの基本

• Rと一問一答スタイルです!

• 大文字と小文字を区別することに注意!

• 「>」この状態になっていれば会話スタートです!

22

Page 23: SappoRo.R #2 初心者向けWS資料

Rの基本

• 四則演算をやってみましょう。

• 1+2はいくらだい?と聞いてみます。

23

Page 24: SappoRo.R #2 初心者向けWS資料

もっともっと• 2+3,3*4,4/5,(2+6)/4などの四則演算もお茶の子さいさい

• sqrt(16)とかabs(-2),cos(30)といった関数も使えます

• 2+3i+4+5iという複素数の計算も!

• piと書くと円周率がでてきます(予約語)

• 予約語については?Constantsで調べてね

24

Tips

Page 25: SappoRo.R #2 初心者向けWS資料

関数とヘルプ

• ()で括るのを「関数」といいます。

• sqrt()もabs()もcos()も関数です。()の中に数値やデータやオプションを指定します。

• ヘルプをひくのも関数で。help(sqrt)など。

• Rを終わらせるのも関数で。q()とします。

25

Page 26: SappoRo.R #2 初心者向けWS資料

関数とヘルプ

• ()で括るのを「関数」といいます。

• sqrt()もabs()もcos()も関数です。()の中に数値やデータやオプションを指定します。

• ヘルプをひくのも関数で。help(sqrt)など。

• Rを終わらせるのも関数で。q()とします。

25

Page 27: SappoRo.R #2 初心者向けWS資料

作業スペース?• Rの記憶だと思ってください。

• 次にRを使うときに,今やったことの記憶を引き継ぎたければ「はい」を,宵越しの記憶は持たない,という人は「いいえ」を選択。

26

Page 28: SappoRo.R #2 初心者向けWS資料

関数の書き方• 関数は,関数名(引数,引数,引数,...)のように書きます。

• 引数(ひきすう)は関数に渡したい数字やデータです。

• 引数でオプションの指定をすることもあります。

• 例)mean(x, na.rm=TRUE)

• TRUE/FALSEはスイッチのon/offを表す記号です(予約語)

Page 29: SappoRo.R #2 初心者向けWS資料

ヘルプを使おう• 関数の意味が分からなかったら,「>」とRが聞き耳を立てているときにお伺いをたてましょう。

• help(mean) あるいは ?meanと書いてみましょう

• そうするとびっくりすることが起きるよ。

28

Page 30: SappoRo.R #2 初心者向けWS資料

ヘルプを使おう• 関数の意味が分からなかったら,「>」とRが聞き耳を立てているときにお伺いをたてましょう。

• help(mean) あるいは ?meanと書いてみましょう

• そうするとびっくりすることが起きるよ。

28

Page 31: SappoRo.R #2 初心者向けWS資料

ヘルプの使い方• ヘルプは英語ですが,書式は整っているので慣れれば読めます• Description;解説

• Usage;使い方とデフォルト情報。

• Auguments;引数。与える情報。

• Details;関数の詳細。

• Value;関数が返す値。アウトプット。

• ReferenceやExampleもあります。29

Page 32: SappoRo.R #2 初心者向けWS資料

ヘルプはネットにも• 青木先生のサイトやseekRも役に立ちます。

30

Page 33: SappoRo.R #2 初心者向けWS資料

ただの電卓じゃないよ• 数字をセットで扱えます。

• 数字のセットに名前を付けてとっておくことができます。次のように入力してみてください。

• 1:4 -> sapporo

• 「いちころんよん ハイフン だいなり さっぽろ」

• 「さっぽろ」31

Page 34: SappoRo.R #2 初心者向けWS資料

ただの電卓じゃないよ• 数字をセットで扱えます。

• 数字のセットに名前を付けてとっておくことができます。次のように入力してみてください。

• 1:4 -> sapporo

• 「いちころんよん ハイフン だいなり さっぽろ」

• 「さっぽろ」

> 1:4 -> sapporo> sapporo[1] 1 2 3 4

31

Page 35: SappoRo.R #2 初心者向けWS資料

一言一句解説• 一行目;

• 「いちころんよん」;1から4まで連続した数字

• 「ハイフン だいなり」;→のつもり。代入しなさい。• 「さっぽろ」;サッポロと名付けた箱の中に。

• 二行目

• 「さっぽろ」;サッポロの中身はなんなんだい?32

Page 36: SappoRo.R #2 初心者向けWS資料

数をセットで扱うというのは

• 次のように入力してみましょう

• c(1,3,5,7,9) ->Sapporo

• 注意!Sapporoとsapporoは別物です!sappoRoもね!

• Sapporo+3

• Sapporo*2

cは「つないで」

33

Page 37: SappoRo.R #2 初心者向けWS資料

数をセットで扱うというのは

• 次のように入力してみましょう

• c(1,3,5,7,9) ->Sapporo

• 注意!Sapporoとsapporoは別物です!sappoRoもね!

• Sapporo+3

• Sapporo*2

> c(1,3,5,7,9)-> Sapporo> Sapporo+3[1] 4 6 8 10 12> Sapporo*2[1] 2 6 10 14 18

cは「つないで」

33

Page 38: SappoRo.R #2 初心者向けWS資料

数をセットで扱うので• 当然こんなことができます。

平均はmean()

分散はvar()

標準偏差はsd()

相関はcor()

> x <- 1:10> y <- c(2,3,4,2,3,4,2,3,4,5)> mean(x)[1] 5.5> var(x)[1] 9.166667> sd(x)[1] 3.02765> cor(x,y)[1] 0.5330018

34

Page 39: SappoRo.R #2 初心者向けWS資料

それじゃあ関数電卓だよ!

• という人のために。作図もできます。

• plot(x)

• plot(x,y)

• boxplot(x,y)

35

Page 40: SappoRo.R #2 初心者向けWS資料

でもまだ○xcelに負けてるね!

• という人のために,今から色々紹介していきますが,

• ひとまずdemo(graphics)と入力してみないか?!

• 数値の行列処理,作図能力,なかなかのもんじゃぜ?

36

Page 41: SappoRo.R #2 初心者向けWS資料

数字のセットとセットで

• 数字と数字のセットを足し合わせたりすることもできます

37

Page 42: SappoRo.R #2 初心者向けWS資料

数字のセットとセットで

• 数字と数字のセットを足し合わせたりすることもできます

> x [1] 1 2 3 4 5 6 7 8 9 10> y [1] 2 3 4 2 3 4 2 3 4 5> x+y [1] 3 5 7 6 8 10 9 11 13 15

37

Page 43: SappoRo.R #2 初心者向けWS資料

行列だぜ

• 表計算ソフトはベクトルの計算はできても行列計算は苦手なわけでして・・・

• 次のように入力してみましょう

• mat1 <- matrix(1:10,nrow=2)

• mat1

38

Page 44: SappoRo.R #2 初心者向けWS資料

行列だぜ

• 表計算ソフトはベクトルの計算はできても行列計算は苦手なわけでして・・・

• 次のように入力してみましょう

• mat1 <- matrix(1:10,nrow=2)

• mat1

> mat1 <- matrix(1:10,nrow=2)> mat1 [,1] [,2] [,3] [,4] [,5][1,] 1 3 5 7 9[2,] 2 4 6 8 10

38

Page 45: SappoRo.R #2 初心者向けWS資料

要素にアクセス• 出力の周辺に,[,1]とか[2,]とかありましたね。

• アレがそのまま,行列アクセスのヒントになっています。

• mat1[,1]

• mat1[2,]

• mat1[2,1]

39

Page 46: SappoRo.R #2 初心者向けWS資料

要素にアクセス• 出力の周辺に,[,1]とか[2,]とかありましたね。

• アレがそのまま,行列アクセスのヒントになっています。

• mat1[,1]

• mat1[2,]

• mat1[2,1]

> mat1[,1][1] 1 2> mat1[2,][1] 2 4 6 8 10> mat1[2,1][1] 2

39

Page 47: SappoRo.R #2 初心者向けWS資料

行列の計算?

• mat1 -2とかmat1*1とか。ベクトルと同じで要素全てに処理。

• 行列とベクトルのかけ算とか,行列と行列の足し算とか・・・は必要なんだけど,算数の授業じゃないのでパス!

40

Page 48: SappoRo.R #2 初心者向けWS資料

代入袋

• ベクトル,マトリックスなど入れておく袋には種類があります

• 後二つ知っておいたら完璧。これぞリストとデータフレーム型

41

Page 49: SappoRo.R #2 初心者向けWS資料

リストって• なんでも入れておける。数字でも,文字でも。何も気にしなくていい。とにかく放り込める,まるで四次元ポケット。

42

Page 50: SappoRo.R #2 初心者向けWS資料

リストって• なんでも入れておける。数字でも,文字でも。何も気にしなくていい。とにかく放り込める,まるで四次元ポケット。

> Obj <- list(name=c("kosugi","koji"),+ sex=c("male","female","DK/NA"),+ hight=c(160,170,180),+ mat=matrix(1:10,nrow=5))

42

Page 51: SappoRo.R #2 初心者向けWS資料

中身を確認

nameという名称で保存した情報。文字列。sexという名称で保存した情報。文字列。

highという名称で保存した情報。数値のセット。

matという名称で保存した情報。数値のセットのセット=行列

> Obj$name[1] "kosugi" "koji" $sex[1] "male" "female" "DK/NA" $hight[1] 160 170 180$mat [,1] [,2][1,] 1 6[2,] 2 7[3,] 3 8

43

Page 52: SappoRo.R #2 初心者向けWS資料

呼び出しは見た通り

• 出力の途中に$がありましたね。

• アレがそのまま,要素へのアクセスのヒントになっています。

• Obj$name

• Obj$mat

44

Page 53: SappoRo.R #2 初心者向けWS資料

呼び出しは見た通り

• 出力の途中に$がありましたね。

• アレがそのまま,要素へのアクセスのヒントになっています。

• Obj$name

• Obj$mat

> Obj$name[1] "kosugi" "koji" > Obj$mat [,1] [,2][1,] 1 6[2,] 2 7[3,] 3 8[4,] 4 9[5,] 5 10

44

Page 54: SappoRo.R #2 初心者向けWS資料

データフレームって

• 行列とリストのいいとこ取り?

• 整頓されたリスト。矩形。よく見るデータセットの形。

• 列名(変数名)がつけられる

45

Page 55: SappoRo.R #2 初心者向けWS資料

データフレームの例

• Irisデータをみてみましょう。baseに最初から含まれるデータセットですので,特に何もしなくても読み込まれています。

• head(iris)/tail(iris);データの最初の数行,最後の数行

• summary(iris);データの要約が表示されます。

46

Page 56: SappoRo.R #2 初心者向けWS資料

データフレームの例

• ここでstr関数

• str(iris);オブジェクトの構造を示します。

> str(iris)'data.frame': 150 obs. of 5 variables: $ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ... $ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ... $ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ... $ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ... $ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

47

Page 57: SappoRo.R #2 初心者向けWS資料

データの種類

• num;数字ですね

• factor;数字+ラベル,のことです

• iris$Speciesと入力してみましょう。

• 名義・順序尺度水準の数値

48

Page 58: SappoRo.R #2 初心者向けWS資料

データの種類

• num;数字ですね

• factor;数字+ラベル,のことです

• iris$Speciesと入力してみましょう。

• 名義・順序尺度水準の数値

> iris$Species [1] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa

(中略)[131] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica [141] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica Levels: setosa versicolor virginica

48

Page 59: SappoRo.R #2 初心者向けWS資料

データの種類

• num;数字ですね

• factor;数字+ラベル,のことです

• iris$Speciesと入力してみましょう。

• 名義・順序尺度水準の数値

> iris$Species [1] setosa setosa setosa setosa setosa setosa setosa setosa setosa setosa

(中略)[131] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica [141] virginica virginica virginica virginica virginica virginica virginica virginica virginica virginica Levels: setosa versicolor virginica

1, 2, 348

Page 60: SappoRo.R #2 初心者向けWS資料

ちなみに

• 先ほどのリストObjもstrすると種類が分かります。

• 他にも論理型Logicalというのがあり,TRUE/FALSEの二つの値をとります。

List of 4 $ name : chr [1:2] "kosugi" "koji" $ sex : chr [1:3] "male" "female" "DK/NA" $ hight: num [1:3] 160 170 180 $ mat : int [1:5, 1:2] 1 2 3 4 5 6 7 8 9 10

文字列chr

数値num整数値int

49

Page 61: SappoRo.R #2 初心者向けWS資料

データと分析の一例を• hist(iris$Sepal.Width)

• cor(iris$Sepal.Width,iris$Sepal.Length)

• result <- aov(Sepal.Length~Species,data=iris)

• summary(result)

• result2 <- lm(Sepal.Length~Sepal.Width,data=iris)

• result2

• plot(iris$Sepal.Width,iris$Sepal.Length)

• abline(result2)

50

Page 62: SappoRo.R #2 初心者向けWS資料

さて

51

Page 63: SappoRo.R #2 初心者向けWS資料

【実践編】Rをたっぷり使いましょう

52

Page 64: SappoRo.R #2 初心者向けWS資料

subMENU

• Rstudioをつかってもっと便利にRを使おう

• ファイルからデータを読み込むには

• パッケージを読み込むには

• データを整理整頓

• モデルの表記法を知ろう53

Page 65: SappoRo.R #2 初心者向けWS資料

はじめに;圧倒的にお勧め

54

Page 66: SappoRo.R #2 初心者向けWS資料

はじめに;圧倒的にお勧め

54

Page 67: SappoRo.R #2 初心者向けWS資料

どれぐらいお勧めかというと

• 統計処理をお料理に例えると(cf.木下冨雄)

• R本体でも楽しくお料理はできる。飯ごう炊爨的楽しさ。

• RStudioはキッチンスタジアム級!

55

Page 68: SappoRo.R #2 初心者向けWS資料

四つの領域と複数のタブ

ConsoleScript

Workspace/History Files/Plots/Packages/Help

Files 冷蔵庫/Plot ブログ用画像Package 調味料/Help レシピ本

シンク/カメラ

調理場ここでレシピを展開

56

Page 69: SappoRo.R #2 初心者向けWS資料

57

Page 70: SappoRo.R #2 初心者向けWS資料

58

Page 71: SappoRo.R #2 初心者向けWS資料

RstudioのProject

• プロジェクト単位によるデータ管理をしておくとよい

• ひとつのフォルダにデータとソースコードを入れておく

59

Page 72: SappoRo.R #2 初心者向けWS資料

60

Page 73: SappoRo.R #2 初心者向けWS資料

61

Page 74: SappoRo.R #2 初心者向けWS資料

62

Page 75: SappoRo.R #2 初心者向けWS資料

63

Page 76: SappoRo.R #2 初心者向けWS資料

64

Page 77: SappoRo.R #2 初心者向けWS資料

長所

• ファイルがあちこちに拡散しない

• プロジェクトごとにワークスペース(Rの記憶)が保持できる

• Working Directoryが自動的に設定される(パスが短くて済む)

• R単体だとsetwd関数で指定してやる必要がある

65

Page 78: SappoRo.R #2 初心者向けWS資料

他にも便利な機能がいっぱい

• 関数補完機能(TABキー)

• SourceからConsoleへ(Run),HistoryからConsoleやSourceへ

• 実行してうまく行ったものをSourceに保存=清書

• プロットした図の出力(サイズ変更やClipboard出力,File出力)

66

Page 79: SappoRo.R #2 初心者向けWS資料

subMENU

• Rstudioをつかってもっと便利にRを使おう

• ファイルからデータを読み込むには

• パッケージを読み込むには

• データを整理整頓

• モデルの表記法を知ろう67

Page 80: SappoRo.R #2 初心者向けWS資料

データの読み込み

• 多くの場合,データはファイルとしてR外部に置いてある

• これが読み込めるだけでずいぶん捗りますよね

• データはカンマ区切り(csv),タブ区切りのテキスト形式で保存してあることが望ましいです。

68

Page 81: SappoRo.R #2 初心者向けWS資料

データの読み込み• 関数を使って読み込む例

• 代入先←関数名(ファイル名,ヘッダ,欠損値)• delim;テキストファイル,csv;カンマ区切り

• ファイル名を直接指定するかfile.choose関数

• 一行目に変数名あり=TRUE,なし=FALSE

• 欠損値は文字,記号等を指定する

sample1 <- read.delim("sample.dat",head=TRUE,na.strings="*")sample2 <- read.csv("sample.csv",head=TRUE,na.strings=".")sample3 <- read.csv(file.choose(),head=FALSE,na.strings="9")

Page 82: SappoRo.R #2 初心者向けWS資料

補遺)データの読み込み

• SPSSやExcelなど,他のアプリで作ったデータをそのまま読み込みたい時はforeignパッケージを使いましょう

• あるいはRzパッケージを使いましょう。RzパッケージはGUI環境でファイルの操作が可能です!

70

Page 83: SappoRo.R #2 初心者向けWS資料

Rstudio)ファイルを読み込むと

• read.delim / read.csv関数でファイルを指定する時は,フルパスが必要(ex. “C:\User\Kosugitti\Data\sample.csv”)

• でもプロジェクトフォルダ内だとファイル名だけでいい。

• 読み込んだ後にWorkspaceにどんなものがあるか表示されている

71

Page 84: SappoRo.R #2 初心者向けWS資料

subMENU

• Rstudioをつかってもっと便利にRを使おう

• ファイルからデータを読み込むには

• パッケージを読み込むには

• データを整理整頓

• モデルの表記法を知ろう72

Page 85: SappoRo.R #2 初心者向けWS資料

over 4000 packages!

• パッケージは「新しい料理のレシピ」,”Cookpad”のようなもの。

• インターネット上のCRANから取り込んで料理上手になろう!

• パッケージをインストールするのは三通り• install.packages関数を使う

• Rguiから

• Rstudioから73

Page 86: SappoRo.R #2 初心者向けWS資料

パッケージのインストール• install.packages(“psych”) とするか,

• メニューのパッケージから進むか

74

Page 87: SappoRo.R #2 初心者向けWS資料

パッケージのインストール• install.packages(“psych”) とするか,

• メニューのパッケージから進むか

74

Page 88: SappoRo.R #2 初心者向けWS資料

Rstudio)packageタブから

• ここでinstall Packagesを選ぶとグイグイいけます。

• ダウンロード済みのパッケージをアップデートするのもグイッと!

75

Page 89: SappoRo.R #2 初心者向けWS資料

ダウンロードと実装

• インストールするだけでは使えません。

• 「ここで装備していくかい?」=library関数

• library(psych)とするとpsychパッケージの関数群がつかえるようになります。

76

Page 90: SappoRo.R #2 初心者向けWS資料

Rstudio)libraryもボタン一つで

装備を外す=detachもチェックボックスをオフにするだけ

77

Page 91: SappoRo.R #2 初心者向けWS資料

subMENU

• Rstudioをつかってもっと便利にRを使おう

• ファイルからデータを読み込むには

• パッケージを読み込むには

• データを整理整頓

• モデルの表記法を知ろう78

Page 92: SappoRo.R #2 初心者向けWS資料

変数を触る,作る,切り取る• read.delim関数で読み込んだデータセットは,data.frame型になっている。

• ドルマークをつかって変数にアクセスするのでした。

• ex) iris$Sepal.Width

• 変数同士を計算することも当然できるわけです

• ex) iris$Sepal.Width/iris$Sepal.Length79

Page 93: SappoRo.R #2 初心者向けWS資料

変数を触る,作る,切り取る• 計算結果の保存先を同じデータセットにし,新しい名前を付けてやると新しい変数ができます。

• iris$ratio <- iris$Sepal.Width/iris$Sepal.Length

80

Page 94: SappoRo.R #2 初心者向けWS資料

変数を触る,作る,切り取る• 計算結果の保存先を同じデータセットにし,新しい名前を付けてやると新しい変数ができます。

• iris$ratio <- iris$Sepal.Width/iris$Sepal.Length

80

Page 95: SappoRo.R #2 初心者向けWS資料

変数を触る,作る,切り取る• 計算結果の保存先を同じデータセットにし,新しい名前を付けてやると新しい変数ができます。

• iris$ratio <- iris$Sepal.Width/iris$Sepal.Length

80

Page 96: SappoRo.R #2 初心者向けWS資料

変数を触る,作る,切り取る

• 変数の一部を切り取って別のオブジェクトにできます。

• iris2 <- subset(iris,select=c("Sepal.Length","ratio"))

81

Page 97: SappoRo.R #2 初心者向けWS資料

変数を触る,作る,切り取る

• 条件で切り取ることでもできます。

• iris3 <- subset(iris,iris$Species=="setosa")

82

Page 98: SappoRo.R #2 初心者向けWS資料

Rstudio)ここでも確認できます

• 新しいデータセットを作るとRのWorkingSpaceに蓄えられていく

変数やオブザベーションの数に注意して見てね

83

Page 99: SappoRo.R #2 初心者向けWS資料

接着ける• データとデータを引っ付ける場合はcbind

かrbind関数

• cbindは横に,rbindは縦にひっつけます。

• 行数・列数が等しくないとエラーになります.

X Y

cbind

84

Page 100: SappoRo.R #2 初心者向けWS資料

接着ける• データとデータを引っ付ける場合はcbind

かrbind関数

• cbindは横に,rbindは縦にひっつけます。

• 行数・列数が等しくないとエラーになります.

X

Zrbind

84

Page 101: SappoRo.R #2 初心者向けWS資料

Rstudio)ここでも確認できます

変数やオブザベーションの数に注意して見てね

85

Page 102: SappoRo.R #2 初心者向けWS資料

接着ける2

• データの名寄せをする時はmerge関数が便利です

• 名寄せのキーになる変数をbyオプションで指定するなど

• 詳細はhelp(merge)のExampleを見てみましょう

86

Page 103: SappoRo.R #2 初心者向けWS資料

subMENU

• Rstudioをつかってもっと便利にRを使おう

• ファイルからデータを読み込むには

• パッケージを読み込むには

• データを整理整頓

• モデルの表記法を知ろう87

Page 104: SappoRo.R #2 初心者向けWS資料

基本となる書き方

• 関数の意味やモデルの詳細はヘルプに譲るとして・・・

• 独立変数(説明変数)と従属変数(被説明変数,目的変数)の関係を表すformulaを知っておくと,少しばかり捗ります。

• 従属変数~独立変数+独立変数・・・という書き方をします。

88

Page 105: SappoRo.R #2 初心者向けWS資料

データと分析の一例を

• result1 <- aov(Sepal.Length~Species,data=iris)

• result2 <- lm(Sepal.Length~Sepal.Width,data=iris)

• result3 <- lm(Sepal.Length~Sepal.Width+Petal.Length,data=iris)

• 分散分析と回帰分析は同じ仲間!

89

Page 106: SappoRo.R #2 初心者向けWS資料

データと分析の一例を

• result4 <- factanal(~.,factors=1,data=iris[,-5])

• 因子分析は従属変数がないことがわかる

• ピリオドで「全ての変数」• iris[,-5]は5列目は削除してね,という意味

90

Tips

Page 107: SappoRo.R #2 初心者向けWS資料

Enjoy Life!

Thank you!