第八回 ppt

2015年5月29日
1. R入門
2. DDS 「2.2.2 演習問題:EDA」

Tools -> Global Options










数値
文字列
TRUE/FALSE
ベクトル
行列
リスト
データフレーム
NULL
NaN (Not a Number)
Inf (Infinity)
ls()
rm(x)
class(x)
Str(x)
:
:
:
:
定義した変数一覧
定義済み変数の削除
変数のデータ型
変数のデータ構造
数値の計算
10+3, 10-3, 10*3, 10/3, 10%%3, 10%/%3, 10^3
cos(1), sqrt(2), round(2.555)

文字列の操作
paste(“a”, “b”, “c”), paste(“a”, “b”, “c”, sep=“”),
as.character(5), as.numeric(“5”)

等試してみてください
[1, 3, 5]というベクトルを変数vに代入する
v <- c(1,3,5)

ベクトルvのindex=2にアクセスする
v[2]

ベクトルの要素を変数として扱える
v[3] <- 10

ベクトルの要素を追加する
v[4] <- 7

ベクトルの要素数を返す
length(v)

連続した数字をベクトルにしまう
v <- 1:10, v <- seq(1, 10, by=2), seq(1, 10, length=5)

一定の要素の繰り返しをベクトルにしまう
v <- rep(1:5, times=3), v<- rep(1:5, length=10)

x <- c(1,3,5)
y <- c(2,3,4)

を用意しておく
以下の計算を確かめてみる
x*2, x-1, x+y, x>y, x==y,
x%in%y
: x の要素がyの中にあるか
union(x,y)
: x と y の和集合
intersect(x,y) : x と y の積集合
setdiff(x,y)
: x と y の差集合
setequal(x,y) : 集合として比較 setequal(x, c(1,3,5,1,3,5)) はどうなる?
ベクトルの要素にカテゴリを与える
x <- c(“S”, ”M”, ”L”, ”M”, ”L”)
x.fc <- factor(x)

カテゴリを指定する
x.fc <- factor(x, levels=c("S","M","L","XL"))

カテゴリに順序関係を付加する
x.or <- ordered(x, levels=c("S","M","L","XL"))

因子ベクトルへ変換
z <- 1:20
z.fc <- cut(z,c(-Inf,0,5,10,15,Inf))

3行2列の行列を定義
x <- matrix(1:6, nrow=3, ncol=2)
y <- matrix(1:6, nrow=3, ncol=2, byrow=TRUE)

行ごと、列ごとに行列を定義する
x <- rbind(c(1,2), 3:4, 5:6)
x <- cbind(1:2, 3:4, 5:6)

行列の演算
x+1, 1/x

行列の要素数を得る
dim(x), nrow(x), ncol(x)

行列の要素にアクセス
x[2,3]

行列の行、列にアクセス
x[1,], x[,1]
x[1,1:2], x[1,c(1,3)]

行列の要素の編集
x[1,2] <- 10
x2 <- edit(x), fix(x)


リストは要素のデータ型が異なっていてよい
ベクトル、文字列、行列を要素とするリスト
x <- list(5:10,"abc",matrix(1:6,nrow=2,ncol=3))

リストの要素へのアクセス
x[1]
: 1つ目のリスト
x[[1]]
: リストの1つ目の要素
x[[1]][1]
: リストの1つ目の要素の1つ目の要素
x[[3]][1,2] : リストの1つ目の要素の1行2列の要素


「行列+属性」という概念でデータセットのように列に属性名をもつ
2属性:SIZE, SALESである2列5行のデータフレーム
x <- data.frame(SIZE=c("M","L","S","L","M"),SALES=c(1,2,1,3,1))


部分データフレームにアクセス
◦ 行(インスタンス) : x[1,], x[1:10,], x[c(1,3),]
◦ 条件を指定
: subset(x, SALES>2)
属性の値にアクセス
x$SIZE もしくは x[,1]

データセットをファイルから読み込む  nyt1.csvをワーキングディレクトリに置く
x <- read.table("nyt1.csv", header=TRUE, sep=",", na.strings="")
Y <- read.table(“nyt1.csv”, header=FALSE, sep=“,”, na.strings=“”)
z <- read.table("nyt1.csv", header=FALSE, sep=“¥n", na.strings="")

x, y, z を比較してみましょう
合計
sum(x$Age)
 最大値・最小値
max(x$Age), min(x$Age)
 平均値
mean(x$Age)
 中央値
median(x$Age)
 標準偏差 (「平均との差」の平均)
sd(x$Age)

数値の桁表示について
1.3e+02 = 130
演習: データセット nyt1.csv の属性”Age”の合計値、最大値、最小値、平均値、
中央値、標準偏差の6つの値を持ったベクトルを変数stに代入してください

データセットをダウンロード  テキストエディタで開く
◦ https://github.com/oreillymedia/doing_data_science


Wekaで読み込む
Rstudioで読み込む
◦ プロジェクト “DDS2.Rproj” に “ex222.R” を作成

nyt1.csvを読み込みインスタンス例と要約を表示する

一行ずつ実行しながらソースコードを読み解く
 後で自分でわかるようにメモをとること
5/1 [実践編] データマンジング、可視化、分析
5/8 第2章輪講
5/15 R導入
5/22 第3章輪講
5/29 R入門
6/4 第4章輪講
・・・ 随時更新
 1週間で1章ずつ全員で読み進める
◦ 第1章~第5章について5つのグループで担当
する章の内容をまとめて発表する
◦ 残りの4グループの人はペンで理解できなかった
点や議論したい点などマーク・メモしておく
 発表後にその章について議論
◦ マーク・メモしておいた内容についてみんなで話す
2年生:1グループ
3年生:4グループ (3名、3名、4名、4名)
2-1:
岡田 矢代 向田
 第1章
3-1:
土屋 吉川 中山
 第2章
3-2:
関根 山岸 寺澤
 第3章
3-3:
伊東 今野 堀川 仲山
 第4章
3-4:
大内 西野 山口 天野
 第5章
提出レポートのファイル名は以下の規則に従ってつけてくださ
い。
学籍番号氏名_プロジェクト#番号.docx
例)13T9001佐藤温_プロジェクト#03.docx
研究室:西館4階 A1
メールを送る際には2人両方を宛先にいれること
メールアドレス:
黄 潤和 教授
[email protected]
TA 佐藤 温
[email protected]