More Related Content
PDF
PPTX
巨大な表を高速に扱うData.table について PPTX
for関数を使った繰り返し処理によるヒストグラムの一括出力 PDF
PDF
PDF
PDF
PPT
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと Similar to Introduction to R
PDF
PDF
PDF
PPT
PDF
PDF
PDF
PDF
10分で分かるr言語入門ver2.9 14 0920 PDF
PDF
PDF
PDF
PPT
PDF
統計解析環境Rによる統計処理の基本―検定と視覚化― PDF
10分で分かるr言語入門ver2.10 14 1101 PDF
PDF
PDF
PPTX
PPTX
Introduction to R
- 1.
- 2.
1 はじめに
2 What’sR?
3 実際に動かしてみよう
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 2 / 40
- 3.
- 4.
今日の目標
ある程度 R の仕組みを理解する
Rに触れるのが怖くなくなる
前回既に行った R と Rstudio のインストールを前提とする
R スクリプトにコードを書き込んで一緒に動かそう
File -> New File -> R Script (Win:Ctrl+Shift+N,
Mac:command+Shift+N)
コードを書いたら走らせよう
一部を動かす (Win:Ctrl+Enter, Mac:command+Enter)
ファイル内の全てのコードを評価 (Win:Ctrl+alt+R,
Mac:command+alt+R)
後日、前に書いたコード (*.R) を読み込んで利用することもできます
File -> Open File(Win:Ctrl+O, Mac:command+O)
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 4 / 40
- 5.
- 6.
- 7.
R の特徴
長所
無料で誰でも使える
Windows でもMac でも Linux でも使える
コマンドベースで動かすのでコードが使いまわせる
分析の手順が残せる(再現しやすい)
短所
コマンドで動かすのでちょっとハードルを感じやすい
慣れれば楽しくなるよ
日本語がちょっと弱い
データだけでなくてファイル名やフォルダ名も要注意
大文字、小文字やちょっとのスペルミス、かっこ () の閉じ忘れなど
で動かないこともある
エラーはちょっとわかりにくい
Rstudio があるとちょっとは防げる
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 7 / 40
- 8.
R の動かし方
データ型
実数 (numeric)
整数(integer)
文字列 (character)
因子 (factor) など
データ型を確認しておかないと後でうまくいかないことも
特に数値が factor になっていると面倒くさい
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 8 / 40
- 9.
- 10.
- 11.
- 12.
データを読み込む前に
プロジェクトを作成しよう
分析を管理できる
File -> NewProject
これをやっておけば、setwd() とかしないでも大丈夫
プロジェクトや論文、レポートごとに 1 つ作るイメージ
R スクリプトに R にやらせたいことを書き込んでいこう
File -> New File -> R Script (Win:Ctrl+Shift+N,
Mac:command+Shift+N)
他にもショートカットは Alt+Shift+K で表示できる
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 12 / 40
- 13.
- 14.
- 15.
結果 1
1 +1
## [1] 2
5 - 4
## [1] 1
2 * 3
## [1] 6
10 / 3
## [1] 3.333333
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 15 / 40
- 16.
簡単な計算例 2 計算の順序
1+ 2 * 3 ^ 4
(1 + 2) * 3 ^ 4
(1 + 2 * 3) ^ 4
((1 + 2) * 3) ^ 4
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 16 / 40
- 17.
結果 2
1 +2 * 3 ^ 4
## [1] 163
(1 + 2) * 3 ^ 4
## [1] 243
(1 + 2 * 3) ^ 4
## [1] 2401
((1 +2) * 3) ^ 4
## [1] 6561
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 17 / 40
- 18.
簡単な計算例 3 関数を使った計算
pi* 10
exp(1) * 10 ^ 2
sqrt(2) * 10E04
log(10)
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 18 / 40
- 19.
結果 3
pi *10
## [1] 31.41593
exp(1) * 10 ^ 2
## [1] 271.8282
sqrt(2) * 10E04
## [1] 141421.4
log(10)
## [1] 2.302585
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 19 / 40
- 20.
簡単な計算例 4 変数に格納する
x<- 3
y <- 9
x + x
a <- c(1,2,3)
b <- 4:6
a / b
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 20 / 40
- 21.
結果 4
x ;y ; x + x
## [1] 3
## [1] 9
## [1] 6
a ; b ; a / b
## [1] 1 2 3
## [1] 4 5 6
## [1] 0.25 0.40 0.50
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 21 / 40
- 22.
簡単な応用例 1
c <-1:10
d <- mean(c)
e <- c - d
f <- (c- d) ^ 2
g <- sum(f) / (length(c) - 1)
h <- sqrt(g)
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 22 / 40
- 23.
結果
d
## [1] 5.5
g; var(c)
## [1] 9.166667
## [1] 9.166667
h ; sd(c)
## [1] 3.02765
## [1] 3.02765
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 23 / 40
- 24.
データの構造を確認
i <- 1:10
j<- i * 2
k <- c(rep("aa",3),rep("bb",4), rep("cc",3))
l <- data.frame(y = i, x = j, fac = k)
head(l,2)
## y x fac
## 1 1 2 aa
## 2 2 4 aa
str(l)
## 'data.frame': 10 obs. of 3 variables:
## $ y : int 1 2 3 4 5 6 7 8 9 10
## $ x : num 2 4 6 8 10 12 14 16 18 20
## $ fac: Factor w/ 3 levels "aa","bb","cc": 1 1 1 2 2 2 2 3
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 24 / 40
- 25.
データの概要を確認
summary(l)
## y xfac
## Min. : 1.00 Min. : 2.0 aa:3
## 1st Qu.: 3.25 1st Qu.: 6.5 bb:4
## Median : 5.50 Median :11.0 cc:3
## Mean : 5.50 Mean :11.0
## 3rd Qu.: 7.75 3rd Qu.:15.5
## Max. :10.00 Max. :20.0
table(l$fac)
##
## aa bb cc
## 3 4 3
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 25 / 40
- 26.
相関係数の計算
m <- j^ 3
l$m <- m
cor(l$y,l$m)
## [1] 0.9283912
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 26 / 40
- 27.
散布図の作成
plot(l)
y
5 10 1520 0 2000 4000 6000 8000
246810
5101520
x
fac
1.01.52.02.53.0
2 4 6 8 10
020006000
1.0 1.5 2.0 2.5 3.0
m
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 27 / 40
- 28.
論理演算子
!TRUE ; TRUE& FALSE ; TRUE | FALSE
## [1] FALSE
## [1] FALSE
## [1] TRUE
TRUE & TRUE | FALSE ; TRUE & (TRUE | FALSE)
## [1] TRUE
## [1] TRUE
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 28 / 40
- 29.
比較演算子
n <- c(3,4)
n== 3
## [1] TRUE FALSE
n != 3
## [1] FALSE TRUE
n < 4
## [1] TRUE FALSE
n <= 4
## [1] TRUE TRUE
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 29 / 40
- 30.
CRAN 上のパッケージをインストール
R にもともと備わっている関数だけでは物足りない!
そんな時には世界中のR ユーザーが開発したパッケージを利用する
インストールは初回だけでよい
使うときは毎回 library() を使う
もしくはパッケージ名::関数名 ()
install.packages("tidyverse", dependencies = TRUE)
library(readr)
Tools->Install Packages からもインストールできる
Tools->Check for Package Updates でパッケージをアップデートする
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 30 / 40
- 31.
- 32.
データの読み書き
まず読み込むためのデータを作成
作成したデータを csv で書きだす
ABCDE<- c("A", "B", "C", "D", "E")
Japanese <- c("壱", "弐", "参", "四", "五")
o <- data.frame(Int = 1:300000,
Int2 = seq(from = 0, by = 2.5,
length.out = 300000),
fac = rep(ABCDE, each = 2, times = 30000),
jpn = rep(Japanese, each =2, times = 30000))
write.csv(o, "data.csv", quote=FALSE, row.names=FALSE)
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 32 / 40
- 33.
先ほど作ったデータを読み込む
読み込み方は主に 3 パターン
dat1<- read.csv("data.csv", header = TRUE,
stringsAsFactors = FALSE)
dat2 <- readr::read_csv("data.csv")
dat3 <- data.table::fread("data.csv", data.table = FALSE)
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 33 / 40
- 34.
文字コード
日本語の呪い
OS をまたがって利用する際には文字化けをしないように工夫が必要
Windows で作られたファイルを読み込むEncoding=cp932
Mac で作られたファイルを読み込む Encoding=UTF8
dat1 <- read.csv("data.csv", header = TRUE,
stringsAsFactors = FALSE,
fileEncoding = "cp932")
dat2 <- readr::read_csv("data.csv",
locale=locale(encoding="cp932"))
dat3 <- data.table::fread("data.csv", data.table = FALSE) %>%
dplyr::mutate(jpn = iconv(jpn, from = "UTF8", to = "CP932"))
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 34 / 40
- 35.
- 36.
- 37.
他のファイル形成
tsv ファイル
tab1 <-read.delim("tab.tsv", stringAsFactors = FALSE)
tab2 <- readr::read_tsv("tab.tsv")
tab3 <- data.table::fread("tab.tsv", data.table = FALSE)
その他
other1 <- read.delim("other.tsv",
stringAsFactors = FALSE, sep = "|")
other2 <- readr::read_delim("other.tsv", "|")
other3 <- data.table::fread("sample.tsv", data.table = FALSE)
NAKAJIMA Yukihiro R 入門 2017 年 10 月 3 日 37 / 40
- 38.
- 39.
- 40.