政策研究大学院大学 教育調査分析法

統計パッケージRによるデータの集計と分析

導入

エクセルを使わない理由

なぜRを使うのか

準備

環境

必要なソフトの入手

RStudio(統合環境)

TeraPad(テキストエディタ)

Rの拡張

install.packages("psych")

Rを使う

基本的な操作

とりあえず計算

1 + 1
## [1] 2

計算結果を文字に代入

a <- 1 + 1
a
## [1] 2

代入した結果を使って計算

a + 1
## [1] 3

計算結果をある文字で保持させて,その結果を出す

b <- a + 1
b
## [1] 3

データファイルをつくる

データファイルの例

id class class_size pre post
1 1 20 13 15
2 1 20 17 10
3 1 20 17 22
4 1 20 10 5
5 1 20 20 20
6 2 20 11 25
7 2 20 15 9
8 2 20 24 20
9 2 20 11 21
10 2 20 11 25
11 3 25 15 10
12 3 25 18 14
13 3 25 15 7
14 3 25 14 23
15 3 25 24 21
16 4 25 18 19
17 4 25 13 17
18 4 25 13 14
19 4 25 25 6
20 4 25 17 10
21 5 30 23 9
22 5 30 9 11
23 5 30 24 14
24 5 30 10 20
25 5 30 22 17
26 6 30 11 10
27 6 30 23 17
28 6 30 22 22
29 6 30 25 6
30 6 30 16 12
31 7 35 11 9
32 7 35 8 24
33 7 35 15 24
34 7 35 17 11
35 7 35 12 17
36 8 35 8 14
37 8 35 18 18
38 8 35 22 25
39 8 35 23 15
40 8 35 17 17

データファイルの保存

データファイルを用いたRによる集計・分析

分析に使うディレクトリの設定

setwd("c:\R")
getwd()
## [1] "C:/R"

データファイルを読ませる

data <- read.csv("data.csv")
head(data)
##   id class class_size pre post
## 1  1     1         20  13   15
## 2  2     1         20  17   10
## 3  3     1         20  17   22
## 4  4     1         20  10    5
## 5  5     1         20  20   20
## 6  6     2         20  11   25
nrow(data)
## [1] 40

記述統計

summary(data)
##        id           class        class_size        pre      
##  Min.   : 1.0   Min.   :1.00   Min.   :20.0   Min.   : 8.0  
##  1st Qu.:10.8   1st Qu.:2.75   1st Qu.:23.8   1st Qu.:11.8  
##  Median :20.5   Median :4.50   Median :27.5   Median :16.5  
##  Mean   :20.5   Mean   :4.50   Mean   :27.5   Mean   :16.4  
##  3rd Qu.:30.2   3rd Qu.:6.25   3rd Qu.:31.2   3rd Qu.:22.0  
##  Max.   :40.0   Max.   :8.00   Max.   :35.0   Max.   :25.0  
##       post     
##  Min.   : 5.0  
##  1st Qu.:10.0  
##  Median :16.0  
##  Mean   :15.6  
##  3rd Qu.:20.2  
##  Max.   :25.0

 - その上で記述統計を出力させる

describe(data)
##            vars  n  mean    sd median trimmed   mad min max range  skew
## id            1 40 20.50 11.69   20.5   20.50 14.83   1  40    39  0.00
## class         2 40  4.50  2.32    4.5    4.50  2.97   1   8     7  0.00
## class_size    3 40 27.50  5.66   27.5   27.50  7.41  20  35    15  0.00
## pre           4 40 16.43  5.21   16.5   16.38  8.15   8  25    17  0.15
## post          5 40 15.62  5.95   16.0   15.69  7.41   5  25    20 -0.03
##            kurtosis   se
## id            -1.29 1.85
## class         -1.33 0.37
## class_size    -1.44 0.90
## pre           -1.27 0.82
## post          -1.23 0.94

データハンドリングと記述統計

特定の変数だけを集計する
describe(data$post)
##   vars  n  mean   sd median trimmed  mad min max range  skew kurtosis   se
## 1    1 40 15.62 5.95     16   15.69 7.41   5  25    20 -0.03    -1.23 0.94
特定のケースだけを対象にして特定の変数の記述統計
data2 <- subset(data, class_size == 20)
describe(data2$pre)
##   vars  n mean   sd median trimmed  mad min max range skew kurtosis   se
## 1    1 10 14.9 4.61     14   14.38 4.45  10  24    14 0.62    -1.03 1.46

簡単な作図

ヒストグラム
hist(data$pre)

plot of chunk hist

hist(data$pre, xlim = c(0, 25), ylim = c(0, 0.1), breaks = 5, freq = FALSE, 
    main = "ヒストグラム", xlab = "得点", ylab = "密度")

plot of chunk hist2

散布図
plot(data$pre, data$post)

plot of chunk scat

require(markdown) testres <- rpubsUpload(“test doc”, “pcaexamp.html”, method=“internal”) if (!is.null(testres$continueUrl)) browseURL(testres$continueUrl) else stop(testres$error)