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]
© Copyright 2024 ExpyDoc