SlideShare ist ein Scribd-Unternehmen logo
1 von 30
R の紹介
山本泰智
注 : 2006 年に筆者が作ったもので、一部の
参考文献やサイトなど、既に有効ではない情
報が含まれます。予めご承知置きください。
R とは。
 拡張可能な超多機能関数電卓プログラム
(GNU プロジェクトの一つ )
 ベクトル・行列演算
 統計解析
 データの入出力
 データの可視化
 パッケージ追加
 独自関数定義
 微分・積分
 C 等のプログラミング言語で書かれたプログラムとのやり取り
 バイオインフォマティクス関連 R プロジェクト
 Bioconducter
基本
 ‘起動は R’ ‘、終了は q()’
 オプション指定せずに起動した場合は対話環境となる
 全ての実体 ( 変数、関数等 ) は、「オブジェクト」と呼ばれる
 オブジェクト呼び出し法
 二項演算 (‘+’ ‘や /’) ‘等を除き、基本的に hoge’ ‘に引数 arg’ を渡して処
‘理させたい場合は、 hoge(arg)’ と入力
 ‘結果をオブジェクト x’ ‘に代入する時には、 x <- hoge(arg)’
 パッケージ
 ‘利用可能なパッケージ一覧を得るには search()’
 ‘インストールされているパッケージの一覧を得るには library()’
 ‘インストールされているパッケージ pkg’ ‘を利用する時は library(pkg)’
 ‘pkg’ ‘についての説明を得るには library(help="pkg")’
 ‘パッケージ pkg’ ‘のインストールは install.packages("pkg")’
CRAN にある場合、ダウンロードし、展開し、ビルドし、インストールす
る
 ‘パッケージのアップデートは update.packages()’
ヘルプ、デモ、例
 ヘルプ
 ‘hoge’ ‘について知りたい場合は、 ?hoge’ ‘もしくは、 help(hoge)’
 ‘キーワード key’ に関連するオブジェクトを探すときは、
‘ help.search("key")’
 ‘パッケージ pkg’ ‘についての情報を得るときは、 help(package="key")’
‘library(help="pkg")’ と同じ
 デモ
 一部の定義済みオブジェクトにはデモが用意されている
 ‘demo()’ と入力して、用意されているデモの一覧を表示させられる
 ‘demo(package = .packages(all.available = TRUE))’ で利用可能パッ
ケージの全てのデモの一覧を表示させられる
 例
 多くの定義済みオブジェクトには利用例が用意されている
 ‘hoge’ ‘の利用例を表示させるときは、 example(hoge)’
 ‘par(ask = TRUE)’ でスクロールして消えないようにする
r-project のホームにあるグラフを描かせてみましょう
 描画に必要なパッケージのインストール
 共用マシンなど、書き込み権限を持たない場所に R がインストールされている場
合
 新たなライブラリを保存し、展開するためのディレクトリを用意
‘このディレクトリを、ココでは便宜上 ~/src/R_pkgs’ とします
‘ mkdir ~/src/R_pkgs’
 ‘パッケージ ade4’ ‘と、 pixmap’ をインストール
‘ install.packages(c("ade4", "pixmap"), lib="~/src/R_pkgs", destdir="~/src/R_pkgs")’
 R ‘のライブラリサーチパスに、 ~/src/R_pkgs’ を加える
‘ .libPaths("~/src/R_pkgs")’
 Windows マシンなど書き込み権限を持つ場所に R がインストールされている場合
 必要ならば管理者としてログイン
 ‘パッケージ ade4’ ‘と、 pixmap’ をインストール
‘ install.packages(c("ade4", "pixmap"))’
 描画
 ‘source("http://www.r-project.org/misc/acpclust.R")’
 ‘source("file")’ は、 R に対する一連の処理が書かれていることが想定されるファイ
‘ル file’ を読み込んで実行するための関数
 上記の例のように、ネットワーク上のファイルや、標準入力を指定することも出来
オブジェクト
 以下の型 ( 表面上の ) がある
 値 (integer, double, complex, logical, character)
 ‘NA’ (logical), ‘NaN’ (double), ‘Inf’ (double)
 ベクトル
 行列
 配列
 リスト
 データフレーム
 関数
 ‘NULL’
 ‘オブジェクト x’ ‘の型を知りたい場合は typeof(x)’
 ‘オブジェクト x’ ‘の簡単な構造を知りたい場合は str(x)’
‘全てのオブジェクトについての構造を表示したい場合は ls.str()’
 ‘オブジェクト一覧の取得は objects()’ ‘または ls()’
 ‘オブジェクト x’ ‘の消去は rm(x)’
 ‘全てのオブジェクトを消去する場合には rm(list=ls(all=TRUE))’
オブジェクト名
 大文字小文字の違いは区別される
 先頭に数字をつけられない
 以下の予約語があり、オブジェクト名として使え
ない
 break, in, else, next, for, repeat, function, return, if,
while, TRUE, FALSE
 以下は定義済みなので、代入できない
 NA, NaN, Inf, NULL
四則演算
演算 演算子
加算 +
累乗 ^
累乗 **
減算 –
除算 ( 整数 ) %/%
乗算 *
剰余 %%
除算 /
スカラー、ベクトル、行列、文字列と代入
 スカラー
 ‘a <- 3’ ‘、 a = 3’ ‘、 3 -> a’ ‘、 a <<- 3’ ‘、 3 ->> a’ ‘、 assign("a",3)’
以上の代入は全て同じ (‘<-’ ‘、 =’ ‘、 ->’ ‘、 <<-’ ‘、 ->>’ ‘、 assign’)
‘但し、 <<-’ ‘と ->>’ は、常にグローバル変数への代入となる
‘ assign’ は代入のコンテキストを指定できる
 ベクトル
 ‘b <- c(1,2,3)’ ‘、 b <- 1:3’
 行列
 ‘c <- matrix(nrow=3, ncol=4)’ 、
‘ c <- matrix(1:9, nrow=3)’ ‘、 c <- matrix(1:9, 3, 3)’ 、
‘ c <- rbind(1:4, 2:5)’ ‘、 c <- cbind(1:4, 2:5)’
‘c[1][3]’ で 1 行 3 列の要素を取得
‘ c[,3]’ で 3 列目の列ベクトルを取得
 文字列
 ‘d <- "strings"’ ‘、 d <- paste("str", "ings", sep="")’
‘cat("str", "ingsn", sep="")’
規則的なベクトル生成
内容 表記
3 から 5 まで、交差 1 の数列 3:5
0 から 2 までを 4 等分した数
列
seq(0, 2, length=4)
‘1:length(x)’ と等価 seq(along=x)
3 から 5 まで、交差 0.1 の数
列
seq(3, 5, by=0.1)
‘3:5’ を 2 回繰り返す数列 rep(3:5, times=2)
長さが 5 ‘になるまで 3:5’ を
繰り返す数列
rep(3:5, length=5)
ベクトル操作
内容 表記
k 番目の要素を取得 x[k]
k 番目の要素 ( 配列としてアク
セス )
x[[k]]
k 番目の要素を a に変更 x[k] <- a
1, 4 番目の要素を取得 x[c(1, 4)]
1, 3 番目の要素以外の要素を取
得
x[c(-1, -3)]
T に対応した要素を取得 x[c(F, T, T)]
nan でない要素を取得 x[!is.nan(x)]
ラベル "s" と "o" の要素を取得 x[c("s", "o")]
1, 3 番目の要素を 5, -2 で置換 replace(x, c(1, 3), c(5, -2))ベクトルや行列、配列、リストには、行や列などに名前をつけて、名前でアクセスできる
集合演算
内容 表記
和集合 union(x, y)
積集合 intersect(x, y)
差集合 setdiff(x, y)
集合として等しいか否か setequal(x, y)
重複を排除 unique(x)
‘要素 a’ ‘は集合 x’ に含まれるか
否か
is.element(a, x)
同上 %in%
配列、リスト、データフレーム
 配列
 多次元行列オブジェクト
 ‘array(1:3, c(2, 4))’ で 2 X 4 の 2 次元配列を定義
 行列は配列の 2 次元バージョン
 リスト
 任意の型のオブジェクトを複数まとめたオブジェクト
 ‘list(c(1,2,3), matrix(1,3,4), array(1,c(2,4,6)), function(x){x})’
で 3 次元ベクトル ( 要素が 1,2,3) 、全ての要素が 1 の 3 行 4 列行
列、全ての要素が 1 の 2x4x6 である 3 次元配列、 x=x という関数
からなるリストを定義
 もちろん、リストのリストも定義できる
 ‘リスト x’ 5 ‘番目の要素を取得するときは x[[5]]’
 データフレーム (data.frame)
 行方向のサイズが同じである複数の列ベクトルをまとめたリスト
外部とのやり取り
 ‘read.table("file")’ ‘でファイル名 file’ のデータを取得
 ファイルのフォーマットは、デフォルトでは、要素間をスペースで区切る
 ファイル内の 1 行が、 R 内での行列オブジェクトの 1 行に相当
 特に明示しない限り、ファイル内の先頭 1 行目の要素数が、他の行より一つ少ない
ときに限り、それぞれ、先頭 1 行目、 1 列目が、各列、行の名称として使われる
 ‘matrix(scan("file"), 5, 3)’ の方が高速
 行や列の名称の取り込みを同時には出来ない
 ‘write.table(x, "file")’ ‘、か write(x, file="file")’ でファイルにデータを書き込む
 ファイルのフォーマットがバイナリでも構わないときは、
‘ save(x, file="file")’ ‘、 や load("file")’ も使える
 ‘file’ は URL や標準入力でも OK
 ‘read.table("")’ で標準入力からデータを取得
 ‘read.table(“http://abc.def/data.txt”)’ で、 http://abc.def/data.txt からデータを取得
 ‘plot’ 等を用いて作成したイメージは ps や eps 、 png 、 jpeg 等の形式で保
存可能
 ‘help("Devices")’ で保存可能形式一覧を取得
 ‘pdf(file="f.pdf")’ ‘で初期化、 dev.off()’ で閉じる
行列演算 1
 通常の四則演算と同じ要領
 ‘行列 a’ ‘、 b’ ‘、 c’ について、
 ‘a + 2 * b - c’ ( 加算、乗算、減算 )
 ‘a %*% b’ ( 乗算 )
 ‘a * b’ ( 要素毎の乗算 )
 ‘a / b’ ( 要素毎の除算 )
 ‘a %o% b’ ( 外積 )
 ‘a %x% b’ ( クロネッカー積 )
 連立方程式を解く
 Ax = b という形の方程式 ( 例: x + 3y = 1, 2x + 4y = -2)
 ‘a <- matrix(c(1,2,3,4),2,2)’
 ‘b <- matrix(c(1,-2))’
 ‘solve(a,b)’
 x = -5, y = 2 を得る
行列演算 2
 転置
 ‘t(a)’
 行列式
 ‘det(a)’
 逆行列
 ‘solve(a)’
 固有値・固有ベクトル
 ‘eigen(a)’
 特異値分解
 ‘svd(a)’
 主成分分析
 ‘prcomp(a)’
 QR 分解
 ‘qr(a)’
 コレスキ分解
 ‘chol(a)’
 おまけ:行列のイメージ表示
 ‘image(a)’
繰り返し用関数 ( 処理の高速化 )
 apply() ファミリー
 ある関数を、行列の全ての要素や、列方向の要素毎というかたち
で、まとめて繰り返し適用する際に用いる
 ‘apply(a, 1, sum)’ ‘で行列 a’ の各行の要素の和を取得
 ‘その他、 lapply’ ‘、 sapply’ ‘、 tapply’ ‘、 mapply’ があり、リスト
に対して適用したりする
 ‘sweep(a, 2, apply(a, 2, sum), FUN=“/”)’ ‘で行列 a’ の列方向毎に
和を取り、更に列ごとに、その和で各要素を割る
 R での処理を高速化するコツ
 「一つずつ沢山」ではなくて、「沢山を一度に」
 for 文等の繰り返しを避け、ベクトルや行列の演算の形にする
 要素毎の条件分岐を避け、ベクトルについて一度の処理にまとめ
る
統計解析
 和、平均、分散など基本的な関数群が一通りある
 sum(x), mean(x), median(x), var(x), sd(x), max(x), min(x)
 weighted.mean(x), var(x,y), cor(x,y), IQR(x)
 fivenum(x), quantile(x), range(x), ave(x)
 回帰分析
 ‘線形回帰を行う関数 lm()’ を使う
 例:身長と体重の関係を最小二乗法で
 height <- c(177,165,175,168,171,168,190,167,173,172,171,177)
weight <- c( 62, 65, 75, 58, 59, 66, 74, 61, 70, 80, 71, 68)
result <- lm(height ~ weight)
 結果表示
result
Call:
lm(formula = height ~ weight)
Coefficients:
(Intercept) weight
144.5538 0.4195
 ‘summary(result)’ で解析結果の要約が得られる
検定関数 ( 全て後に ‘ .test()’ を付ける )
手法 表記 手法 表記
Ansari-Bradley ansari McNemar mcnemar
Bartlett bartlett Mood mood
二項 binom 一元配置分散 oneway
Pearson の χ2
chisq Quade quade
Spearman の順位相関係数 cor 比率の同一性 prop
Fisher の正確 fisher 傾向性 prop.trend
Fligner-Killeen fligner Shapiro-Wilk shapiro
Friedman の順位総和 friedman t t
Kruskal-Wallis の順位総和 kruskal F var
Kolmogorov-Smirnov ks Wilcoxon の順位和 wilcox
Cochran-Mantel-Haenszelχ2
mantelhaen
確率分布
分布 表記 分布 表記
ベータ beta ロジスティック logis
二項 binom 多変量正規 multinom
コーシー cauchy 負の二項 nbinom
χ 二乗 chisq 正規 norm
指数 exp ポワソン pois
F f t t
ガンマ gamma 一様 unif
幾何 geom スチューデント化された tukey
超幾何 hyper ワイブル weibull
対数正規 lnorm
ウィルコクソンの順位和統計
量
wilcox
ウィルコクソンの符号付順
位和統計量
signrank
統計解析関数
 確率密度 (pdf)
 d_dist_
 累積分布 (cdf)
 p_dist_
 分位数 (quantile)
 q_rist_
 乱数
 r_dist_
 _dist_ = {unif, norm, pois, binom, ...}
可視化
 プロット関数
 ‘plot’ ‘、 sunflowerplot’ ‘、 curve’ ‘、 matplot’ ‘、 hist’ ‘、 boxplot’ ‘、 barplot’ ‘、 dotchart’ ‘、 pie’
など
 直線描画
 ‘abline’ ‘、 segments’ ‘、 arrows’ ‘、 rect’ など
 文字描画
 ‘text’ ‘、 mtext’ など
 枠描画
 ‘box’
 タイトル・サブタイトル描画
 ‘title’
 座標軸描画
 ‘axis’
 凡例描画
 ‘legend’
 多角形
 ‘polygon’
その他
 クラスター解析
 ‘hclust()’
 微分
 ‘D(f, "x")’ ‘関数 f’ ‘を x’ を変数として微分
 ‘deriv(~ f, "x", func=T)’
 例:
f <- deriv(~ x^2, "x", func=T)
f(-2)
 積分
 ‘integrate(f, b, e)’ ‘関数 f’ ‘を b’ ‘から e’ まで積分
各種パッケージに関する解説を取得する各種パッケージに関する解説を取得する
関数定義
 ‘オブジェクト hoge’ を関数として定義するとき
は、
‘ hoge <- function (x) { … }’
 例:ハノイ
 定義
hanoi <- function(f,t,z) if(z>0) {
c <- 6-f-t; y <- z-1
hanoi(f, c, y)
cat("disc ", z, " p", f, "-> p", t, "n")
hanoi(c, t, y)
}
 実行
honoi(1, 2, 5) moonty
関数定義の例 : λ 計算 ( 定義 )
 zero <- function(f) function(x) x
λλ f x. xf x. x
 succ <- function(n) function(f) function(x) f(n(f)(x))
λλ n f x. f (n f x)n f x. f (n f x)
 add <- function(m) function(n) function(f) function(x) m(f)(n(f)(x))
λλ m n f x. m f (n f x)m n f x. m f (n f x)
 mul <- function(m) function(n) function(f) m(n(f))
λλ m n f. m (n f)m n f. m (n f)
 pow <- function(m) function(n) n(m)
λλ m. n mm. n m
 pred <- function(n) function(f) function(x) n(function(g) function(h)
h(g(f))) (function(u) x) (function(u) u) ← バグあり
 n f x. n (n f x. n (λλ g h. h (g f)) (g h. h (g f)) (λλ u. x) (u. x) (λλ u. u)u. u)
関数定義の例 :λ 計算 ( 実行 )
 one <- succ(zero)
 two <- succ(one)
 four <- add(two)(two)
 eight <- mul(two)(four)
 sixteen <- pow(two)(four)
 numbers <- c(one, two, four, eight, sixteen)
 lapply(numbers,
function(x)
paste(x(function(n) n+1)(0), "=",
x(function(n) paste("(1+", n, ")", sep=""))(0)))
詳しい情報元
 オンライン
 http://www.r-project.org/
 R プロジェクトのホームページ
 http://www.okada.jp.org/RWiki/
 日本語で R に関する情報交換をする wiki
 http://www.bioconductor.org/
 Bioconductor のホームページ
 書籍 ( 日本語 )
 舟尾 暢男 ( 編集 ) 、 The R Tips― データ解析環境 R の基本技・グ
ラフィックス活用集、九天社、 ISBN: 486167039X 、 (2005/02)
 岡田 昌史 ( 編集 ) 、 The R Book― データ解析環境 R の活用事例集
、九天社、 ISBN: 4901676970 、新版 (2004/05)
 他多数、上記 RWiki のページに関連文献リストが掲載されている
Related Projects
 Special Areas of Application
 Bioconductor: Bioinformatics with R
 Microarray Software Comparison
 Rgeo: Spatial Statistics with R
 gR: gRaphical models in R
 Robust: Robust Statistics with R
 Rmetrics: Financial Market Analysis with R
 Jim Lindsey's R page
(nonlinear regression and repeated measurements)
 Computational Infrastructure
 Omega: Distributed Statistical Computing
 R GUIs: Graphical User Interfaces for R
 ESS: Emacs speaks Statistics
 R web servers: R Interfaces to Web Servers
 R Zope
 Misc
 Statlib S Archive
 Virtual Data Center
What is R?
 R is a language and environment for statistical
computing and graphics.
 It is a GNU project which is similar to the S
language and environment which was developed
at Bell Laboratories (formerly AT&T, now Lucent
Technologies) by John Chambers and colleagues.
 R can be considered as a different implementation
of S.
 There are some important differences, but much
code written for S runs unaltered under R.

Weitere ähnliche Inhalte

Was ist angesagt?

Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Etsuji Nakai
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」Nagi Teramo
 
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価Shintaro Fukushima
 
Goをカンストさせる話
Goをカンストさせる話Goをカンストさせる話
Goをカンストさせる話Moriyoshi Koizumi
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門Koichi Hamada
 
すごいHaskell楽しく学ぼう-第12章モノイド-
すごいHaskell楽しく学ぼう-第12章モノイド-すごいHaskell楽しく学ぼう-第12章モノイド-
すごいHaskell楽しく学ぼう-第12章モノイド-Hiromasa Ohashi
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるShintaro Fukushima
 
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmarkToshi Harada
 
すごいH 第12章モノイド
すごいH 第12章モノイドすごいH 第12章モノイド
すごいH 第12章モノイドShinta Hatatani
 
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...RのffでGLMしてみたけど...
RのffでGLMしてみたけど...Kazuya Wada
 
TensorFlow White Paperを読む
TensorFlow White Paperを読むTensorFlow White Paperを読む
TensorFlow White Paperを読むYuta Kashino
 
論文紹介: Cuckoo filter: practically better than bloom
論文紹介: Cuckoo filter: practically better than bloom論文紹介: Cuckoo filter: practically better than bloom
論文紹介: Cuckoo filter: practically better than bloomSho Nakazono
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Shintaro Fukushima
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料時響 逢坂
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッションarctic_tern265
 

Was ist angesagt? (19)

Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料Haskell勉強会 14.1〜14.3 の説明資料
Haskell勉強会 14.1〜14.3 の説明資料
 
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価
 
Goをカンストさせる話
Goをカンストさせる話Goをカンストさせる話
Goをカンストさせる話
 
R高速化
R高速化R高速化
R高速化
 
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
[データマイニング+WEB勉強会][R勉強会] はじめてでもわかる 統計解析・データマイニング R言語入門
 
すごいHaskell楽しく学ぼう-第12章モノイド-
すごいHaskell楽しく学ぼう-第12章モノイド-すごいHaskell楽しく学ぼう-第12章モノイド-
すごいHaskell楽しく学ぼう-第12章モノイド-
 
Hupc 1
Hupc 1Hupc 1
Hupc 1
 
データサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみるデータサイエンスワールドからC++を眺めてみる
データサイエンスワールドからC++を眺めてみる
 
20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark20150530 pgunconf-pgbench-semi-structured-benchmark
20150530 pgunconf-pgbench-semi-structured-benchmark
 
Boost tour 1.60.0 merge
Boost tour 1.60.0 mergeBoost tour 1.60.0 merge
Boost tour 1.60.0 merge
 
すごいH 第12章モノイド
すごいH 第12章モノイドすごいH 第12章モノイド
すごいH 第12章モノイド
 
RのffでGLMしてみたけど...
RのffでGLMしてみたけど...RのffでGLMしてみたけど...
RのffでGLMしてみたけど...
 
TensorFlow White Paperを読む
TensorFlow White Paperを読むTensorFlow White Paperを読む
TensorFlow White Paperを読む
 
論文紹介: Cuckoo filter: practically better than bloom
論文紹介: Cuckoo filter: practically better than bloom論文紹介: Cuckoo filter: practically better than bloom
論文紹介: Cuckoo filter: practically better than bloom
 
Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)Rあんなときこんなとき(tokyo r#12)
Rあんなときこんなとき(tokyo r#12)
 
Ekmett勉強会発表資料
Ekmett勉強会発表資料Ekmett勉強会発表資料
Ekmett勉強会発表資料
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッション
 

Ähnlich wie R intro

Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Prunus 1350
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)Masahiro Hayashi
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 Nobuaki Oshiro
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Springanyakichi
 
Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編wada, kazumi
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京Yohei Sato
 
データとは何か
データとは何かデータとは何か
データとは何かKenta Suzuki
 
Deep Learning を実装する
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装するShuhei Iitsuka
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門SatoYu1ro
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101Nobuaki Oshiro
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017wada, kazumi
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こうYoshitomo Akimoto
 
テーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdfテーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdfTakuya Kubo
 
Guide for Swift and Viewer app
Guide for Swift and Viewer appGuide for Swift and Viewer app
Guide for Swift and Viewer appShintaro Kaneko
 
Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション考司 小杉
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPIDaisuke Igarashi
 
Incanterの紹介
Incanterの紹介Incanterの紹介
Incanterの紹介mozk_
 

Ähnlich wie R intro (20)

Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
 
初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)初心者講習会資料(Osaka.R#5)
初心者講習会資料(Osaka.R#5)
 
10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920 10分で分かるr言語入門ver2.9 14 0920
10分で分かるr言語入門ver2.9 14 0920
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
 
Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編Rプログラミング02 データ入出力編
Rプログラミング02 データ入出力編
 
第1回R勉強会@東京
第1回R勉強会@東京第1回R勉強会@東京
第1回R勉強会@東京
 
データとは何か
データとは何かデータとは何か
データとは何か
 
Deep Learning を実装する
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装する
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
 
Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7Pfi Seminar 2010 1 7
Pfi Seminar 2010 1 7
 
10分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 110110分で分かるr言語入門ver2.10 14 1101
10分で分かるr言語入門ver2.10 14 1101
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017
 
KETpic できれいな図を書こう
KETpic できれいな図を書こうKETpic できれいな図を書こう
KETpic できれいな図を書こう
 
テーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdfテーマ別勉強会(R言語)#3.pdf
テーマ別勉強会(R言語)#3.pdf
 
Clojure
ClojureClojure
Clojure
 
R seminar on igraph
R seminar on igraphR seminar on igraph
R seminar on igraph
 
Guide for Swift and Viewer app
Guide for Swift and Viewer appGuide for Swift and Viewer app
Guide for Swift and Viewer app
 
Yamadai.Rデモンストレーションセッション
Yamadai.RデモンストレーションセッションYamadai.Rデモンストレーションセッション
Yamadai.Rデモンストレーションセッション
 
Pythonで始めるDropboxAPI
Pythonで始めるDropboxAPIPythonで始めるDropboxAPI
Pythonで始めるDropboxAPI
 
Incanterの紹介
Incanterの紹介Incanterの紹介
Incanterの紹介
 

Mehr von yayamamo @ DBCLS Kashiwanoha

JSAI 2015 1G5-1 生命科学分野の日本語言語資源の整備と日本語コンテンツへのリンク
JSAI 2015 1G5-1 生命科学分野の日本語言語資源の整備と日本語コンテンツへのリンクJSAI 2015 1G5-1 生命科学分野の日本語言語資源の整備と日本語コンテンツへのリンク
JSAI 2015 1G5-1 生命科学分野の日本語言語資源の整備と日本語コンテンツへのリンクyayamamo @ DBCLS Kashiwanoha
 
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムSIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムyayamamo @ DBCLS Kashiwanoha
 
Towards Database Integration Through RDF & Linked Data
Towards Database Integration Through RDF & Linked DataTowards Database Integration Through RDF & Linked Data
Towards Database Integration Through RDF & Linked Datayayamamo @ DBCLS Kashiwanoha
 

Mehr von yayamamo @ DBCLS Kashiwanoha (20)

D2RQ Mapper
D2RQ MapperD2RQ Mapper
D2RQ Mapper
 
Qaシステム解説
Qaシステム解説Qaシステム解説
Qaシステム解説
 
AJACS54 PubMed Allie inMeXes Colil
AJACS54 PubMed Allie inMeXes ColilAJACS54 PubMed Allie inMeXes Colil
AJACS54 PubMed Allie inMeXes Colil
 
JSAI 2015 1G5-1 生命科学分野の日本語言語資源の整備と日本語コンテンツへのリンク
JSAI 2015 1G5-1 生命科学分野の日本語言語資源の整備と日本語コンテンツへのリンクJSAI 2015 1G5-1 生命科学分野の日本語言語資源の整備と日本語コンテンツへのリンク
JSAI 2015 1G5-1 生命科学分野の日本語言語資源の整備と日本語コンテンツへのリンク
 
SWAT4LS 2014 SLIDE by Yamamoto
SWAT4LS 2014 SLIDE by YamamotoSWAT4LS 2014 SLIDE by Yamamoto
SWAT4LS 2014 SLIDE by Yamamoto
 
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システムSIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
 
トーゴーの日2014ポスター
トーゴーの日2014ポスタートーゴーの日2014ポスター
トーゴーの日2014ポスター
 
Made in "Jimoto"
Made in "Jimoto"Made in "Jimoto"
Made in "Jimoto"
 
第7回 Linked Data 勉強会 @yayamamo
第7回 Linked Data 勉強会 @yayamamo第7回 Linked Data 勉強会 @yayamamo
第7回 Linked Data 勉強会 @yayamamo
 
Linked Open Data
Linked Open DataLinked Open Data
Linked Open Data
 
Swc2013 yamamoto
Swc2013 yamamotoSwc2013 yamamoto
Swc2013 yamamoto
 
Ontology howto
Ontology howtoOntology howto
Ontology howto
 
Building Data
Building DataBuilding Data
Building Data
 
第52回生命科学夏の学校
第52回生命科学夏の学校第52回生命科学夏の学校
第52回生命科学夏の学校
 
Ajacs33 文献の検索とその整理方法
Ajacs33 文献の検索とその整理方法Ajacs33 文献の検索とその整理方法
Ajacs33 文献の検索とその整理方法
 
第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo第5回LinkedData勉強会@yayamamo
第5回LinkedData勉強会@yayamamo
 
Towards Database Integration Through RDF & Linked Data
Towards Database Integration Through RDF & Linked DataTowards Database Integration Through RDF & Linked Data
Towards Database Integration Through RDF & Linked Data
 
LOD challenge day 2011 LT
LOD challenge day 2011 LTLOD challenge day 2011 LT
LOD challenge day 2011 LT
 
Ajacs27 TogoDoc, inMeXes, Allie
Ajacs27 TogoDoc, inMeXes, AllieAjacs27 TogoDoc, inMeXes, Allie
Ajacs27 TogoDoc, inMeXes, Allie
 
SADI practice
SADI practiceSADI practice
SADI practice
 

Kürzlich hochgeladen

My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」inspirehighstaff03
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドKen Fukui
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」inspirehighstaff03
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドKen Fukui
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfinspirehighstaff03
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」inspirehighstaff03
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」inspirehighstaff03
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドKen Fukui
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」inspirehighstaff03
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドKen Fukui
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 

Kürzlich hochgeladen (20)

My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
 
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライドリアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
リアル戦国探究in米沢 事前講座2スライド(スタッフ共有用)『両雄の強さの秘密』についてのスライド
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
 
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライドリアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
リアル戦国探究in米沢 当日講座1(スタッフ共有用)『兵は詐をもって立つ』についてのスライド
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
 
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライドリアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
リアル戦国探究in米沢 事前講座1スライド(スタッフ共有用)『川中島の謎』についてのスライド
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライドリアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
リアル戦国探究in米沢 当日講座2スライド(スタッフ共有用)『人を致すも人に致されず』についてのスライド
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 

R intro

  • 1. R の紹介 山本泰智 注 : 2006 年に筆者が作ったもので、一部の 参考文献やサイトなど、既に有効ではない情 報が含まれます。予めご承知置きください。
  • 2. R とは。  拡張可能な超多機能関数電卓プログラム (GNU プロジェクトの一つ )  ベクトル・行列演算  統計解析  データの入出力  データの可視化  パッケージ追加  独自関数定義  微分・積分  C 等のプログラミング言語で書かれたプログラムとのやり取り  バイオインフォマティクス関連 R プロジェクト  Bioconducter
  • 3. 基本  ‘起動は R’ ‘、終了は q()’  オプション指定せずに起動した場合は対話環境となる  全ての実体 ( 変数、関数等 ) は、「オブジェクト」と呼ばれる  オブジェクト呼び出し法  二項演算 (‘+’ ‘や /’) ‘等を除き、基本的に hoge’ ‘に引数 arg’ を渡して処 ‘理させたい場合は、 hoge(arg)’ と入力  ‘結果をオブジェクト x’ ‘に代入する時には、 x <- hoge(arg)’  パッケージ  ‘利用可能なパッケージ一覧を得るには search()’  ‘インストールされているパッケージの一覧を得るには library()’  ‘インストールされているパッケージ pkg’ ‘を利用する時は library(pkg)’  ‘pkg’ ‘についての説明を得るには library(help="pkg")’  ‘パッケージ pkg’ ‘のインストールは install.packages("pkg")’ CRAN にある場合、ダウンロードし、展開し、ビルドし、インストールす る  ‘パッケージのアップデートは update.packages()’
  • 4. ヘルプ、デモ、例  ヘルプ  ‘hoge’ ‘について知りたい場合は、 ?hoge’ ‘もしくは、 help(hoge)’  ‘キーワード key’ に関連するオブジェクトを探すときは、 ‘ help.search("key")’  ‘パッケージ pkg’ ‘についての情報を得るときは、 help(package="key")’ ‘library(help="pkg")’ と同じ  デモ  一部の定義済みオブジェクトにはデモが用意されている  ‘demo()’ と入力して、用意されているデモの一覧を表示させられる  ‘demo(package = .packages(all.available = TRUE))’ で利用可能パッ ケージの全てのデモの一覧を表示させられる  例  多くの定義済みオブジェクトには利用例が用意されている  ‘hoge’ ‘の利用例を表示させるときは、 example(hoge)’  ‘par(ask = TRUE)’ でスクロールして消えないようにする
  • 5. r-project のホームにあるグラフを描かせてみましょう  描画に必要なパッケージのインストール  共用マシンなど、書き込み権限を持たない場所に R がインストールされている場 合  新たなライブラリを保存し、展開するためのディレクトリを用意 ‘このディレクトリを、ココでは便宜上 ~/src/R_pkgs’ とします ‘ mkdir ~/src/R_pkgs’  ‘パッケージ ade4’ ‘と、 pixmap’ をインストール ‘ install.packages(c("ade4", "pixmap"), lib="~/src/R_pkgs", destdir="~/src/R_pkgs")’  R ‘のライブラリサーチパスに、 ~/src/R_pkgs’ を加える ‘ .libPaths("~/src/R_pkgs")’  Windows マシンなど書き込み権限を持つ場所に R がインストールされている場合  必要ならば管理者としてログイン  ‘パッケージ ade4’ ‘と、 pixmap’ をインストール ‘ install.packages(c("ade4", "pixmap"))’  描画  ‘source("http://www.r-project.org/misc/acpclust.R")’  ‘source("file")’ は、 R に対する一連の処理が書かれていることが想定されるファイ ‘ル file’ を読み込んで実行するための関数  上記の例のように、ネットワーク上のファイルや、標準入力を指定することも出来
  • 6. オブジェクト  以下の型 ( 表面上の ) がある  値 (integer, double, complex, logical, character)  ‘NA’ (logical), ‘NaN’ (double), ‘Inf’ (double)  ベクトル  行列  配列  リスト  データフレーム  関数  ‘NULL’  ‘オブジェクト x’ ‘の型を知りたい場合は typeof(x)’  ‘オブジェクト x’ ‘の簡単な構造を知りたい場合は str(x)’ ‘全てのオブジェクトについての構造を表示したい場合は ls.str()’  ‘オブジェクト一覧の取得は objects()’ ‘または ls()’  ‘オブジェクト x’ ‘の消去は rm(x)’  ‘全てのオブジェクトを消去する場合には rm(list=ls(all=TRUE))’
  • 7. オブジェクト名  大文字小文字の違いは区別される  先頭に数字をつけられない  以下の予約語があり、オブジェクト名として使え ない  break, in, else, next, for, repeat, function, return, if, while, TRUE, FALSE  以下は定義済みなので、代入できない  NA, NaN, Inf, NULL
  • 8. 四則演算 演算 演算子 加算 + 累乗 ^ 累乗 ** 減算 – 除算 ( 整数 ) %/% 乗算 * 剰余 %% 除算 /
  • 9. スカラー、ベクトル、行列、文字列と代入  スカラー  ‘a <- 3’ ‘、 a = 3’ ‘、 3 -> a’ ‘、 a <<- 3’ ‘、 3 ->> a’ ‘、 assign("a",3)’ 以上の代入は全て同じ (‘<-’ ‘、 =’ ‘、 ->’ ‘、 <<-’ ‘、 ->>’ ‘、 assign’) ‘但し、 <<-’ ‘と ->>’ は、常にグローバル変数への代入となる ‘ assign’ は代入のコンテキストを指定できる  ベクトル  ‘b <- c(1,2,3)’ ‘、 b <- 1:3’  行列  ‘c <- matrix(nrow=3, ncol=4)’ 、 ‘ c <- matrix(1:9, nrow=3)’ ‘、 c <- matrix(1:9, 3, 3)’ 、 ‘ c <- rbind(1:4, 2:5)’ ‘、 c <- cbind(1:4, 2:5)’ ‘c[1][3]’ で 1 行 3 列の要素を取得 ‘ c[,3]’ で 3 列目の列ベクトルを取得  文字列  ‘d <- "strings"’ ‘、 d <- paste("str", "ings", sep="")’ ‘cat("str", "ingsn", sep="")’
  • 10. 規則的なベクトル生成 内容 表記 3 から 5 まで、交差 1 の数列 3:5 0 から 2 までを 4 等分した数 列 seq(0, 2, length=4) ‘1:length(x)’ と等価 seq(along=x) 3 から 5 まで、交差 0.1 の数 列 seq(3, 5, by=0.1) ‘3:5’ を 2 回繰り返す数列 rep(3:5, times=2) 長さが 5 ‘になるまで 3:5’ を 繰り返す数列 rep(3:5, length=5)
  • 11. ベクトル操作 内容 表記 k 番目の要素を取得 x[k] k 番目の要素 ( 配列としてアク セス ) x[[k]] k 番目の要素を a に変更 x[k] <- a 1, 4 番目の要素を取得 x[c(1, 4)] 1, 3 番目の要素以外の要素を取 得 x[c(-1, -3)] T に対応した要素を取得 x[c(F, T, T)] nan でない要素を取得 x[!is.nan(x)] ラベル "s" と "o" の要素を取得 x[c("s", "o")] 1, 3 番目の要素を 5, -2 で置換 replace(x, c(1, 3), c(5, -2))ベクトルや行列、配列、リストには、行や列などに名前をつけて、名前でアクセスできる
  • 12. 集合演算 内容 表記 和集合 union(x, y) 積集合 intersect(x, y) 差集合 setdiff(x, y) 集合として等しいか否か setequal(x, y) 重複を排除 unique(x) ‘要素 a’ ‘は集合 x’ に含まれるか 否か is.element(a, x) 同上 %in%
  • 13. 配列、リスト、データフレーム  配列  多次元行列オブジェクト  ‘array(1:3, c(2, 4))’ で 2 X 4 の 2 次元配列を定義  行列は配列の 2 次元バージョン  リスト  任意の型のオブジェクトを複数まとめたオブジェクト  ‘list(c(1,2,3), matrix(1,3,4), array(1,c(2,4,6)), function(x){x})’ で 3 次元ベクトル ( 要素が 1,2,3) 、全ての要素が 1 の 3 行 4 列行 列、全ての要素が 1 の 2x4x6 である 3 次元配列、 x=x という関数 からなるリストを定義  もちろん、リストのリストも定義できる  ‘リスト x’ 5 ‘番目の要素を取得するときは x[[5]]’  データフレーム (data.frame)  行方向のサイズが同じである複数の列ベクトルをまとめたリスト
  • 14. 外部とのやり取り  ‘read.table("file")’ ‘でファイル名 file’ のデータを取得  ファイルのフォーマットは、デフォルトでは、要素間をスペースで区切る  ファイル内の 1 行が、 R 内での行列オブジェクトの 1 行に相当  特に明示しない限り、ファイル内の先頭 1 行目の要素数が、他の行より一つ少ない ときに限り、それぞれ、先頭 1 行目、 1 列目が、各列、行の名称として使われる  ‘matrix(scan("file"), 5, 3)’ の方が高速  行や列の名称の取り込みを同時には出来ない  ‘write.table(x, "file")’ ‘、か write(x, file="file")’ でファイルにデータを書き込む  ファイルのフォーマットがバイナリでも構わないときは、 ‘ save(x, file="file")’ ‘、 や load("file")’ も使える  ‘file’ は URL や標準入力でも OK  ‘read.table("")’ で標準入力からデータを取得  ‘read.table(“http://abc.def/data.txt”)’ で、 http://abc.def/data.txt からデータを取得  ‘plot’ 等を用いて作成したイメージは ps や eps 、 png 、 jpeg 等の形式で保 存可能  ‘help("Devices")’ で保存可能形式一覧を取得  ‘pdf(file="f.pdf")’ ‘で初期化、 dev.off()’ で閉じる
  • 15. 行列演算 1  通常の四則演算と同じ要領  ‘行列 a’ ‘、 b’ ‘、 c’ について、  ‘a + 2 * b - c’ ( 加算、乗算、減算 )  ‘a %*% b’ ( 乗算 )  ‘a * b’ ( 要素毎の乗算 )  ‘a / b’ ( 要素毎の除算 )  ‘a %o% b’ ( 外積 )  ‘a %x% b’ ( クロネッカー積 )  連立方程式を解く  Ax = b という形の方程式 ( 例: x + 3y = 1, 2x + 4y = -2)  ‘a <- matrix(c(1,2,3,4),2,2)’  ‘b <- matrix(c(1,-2))’  ‘solve(a,b)’  x = -5, y = 2 を得る
  • 16. 行列演算 2  転置  ‘t(a)’  行列式  ‘det(a)’  逆行列  ‘solve(a)’  固有値・固有ベクトル  ‘eigen(a)’  特異値分解  ‘svd(a)’  主成分分析  ‘prcomp(a)’  QR 分解  ‘qr(a)’  コレスキ分解  ‘chol(a)’  おまけ:行列のイメージ表示  ‘image(a)’
  • 17. 繰り返し用関数 ( 処理の高速化 )  apply() ファミリー  ある関数を、行列の全ての要素や、列方向の要素毎というかたち で、まとめて繰り返し適用する際に用いる  ‘apply(a, 1, sum)’ ‘で行列 a’ の各行の要素の和を取得  ‘その他、 lapply’ ‘、 sapply’ ‘、 tapply’ ‘、 mapply’ があり、リスト に対して適用したりする  ‘sweep(a, 2, apply(a, 2, sum), FUN=“/”)’ ‘で行列 a’ の列方向毎に 和を取り、更に列ごとに、その和で各要素を割る  R での処理を高速化するコツ  「一つずつ沢山」ではなくて、「沢山を一度に」  for 文等の繰り返しを避け、ベクトルや行列の演算の形にする  要素毎の条件分岐を避け、ベクトルについて一度の処理にまとめ る
  • 18. 統計解析  和、平均、分散など基本的な関数群が一通りある  sum(x), mean(x), median(x), var(x), sd(x), max(x), min(x)  weighted.mean(x), var(x,y), cor(x,y), IQR(x)  fivenum(x), quantile(x), range(x), ave(x)  回帰分析  ‘線形回帰を行う関数 lm()’ を使う  例:身長と体重の関係を最小二乗法で  height <- c(177,165,175,168,171,168,190,167,173,172,171,177) weight <- c( 62, 65, 75, 58, 59, 66, 74, 61, 70, 80, 71, 68) result <- lm(height ~ weight)  結果表示 result Call: lm(formula = height ~ weight) Coefficients: (Intercept) weight 144.5538 0.4195  ‘summary(result)’ で解析結果の要約が得られる
  • 19. 検定関数 ( 全て後に ‘ .test()’ を付ける ) 手法 表記 手法 表記 Ansari-Bradley ansari McNemar mcnemar Bartlett bartlett Mood mood 二項 binom 一元配置分散 oneway Pearson の χ2 chisq Quade quade Spearman の順位相関係数 cor 比率の同一性 prop Fisher の正確 fisher 傾向性 prop.trend Fligner-Killeen fligner Shapiro-Wilk shapiro Friedman の順位総和 friedman t t Kruskal-Wallis の順位総和 kruskal F var Kolmogorov-Smirnov ks Wilcoxon の順位和 wilcox Cochran-Mantel-Haenszelχ2 mantelhaen
  • 20. 確率分布 分布 表記 分布 表記 ベータ beta ロジスティック logis 二項 binom 多変量正規 multinom コーシー cauchy 負の二項 nbinom χ 二乗 chisq 正規 norm 指数 exp ポワソン pois F f t t ガンマ gamma 一様 unif 幾何 geom スチューデント化された tukey 超幾何 hyper ワイブル weibull 対数正規 lnorm ウィルコクソンの順位和統計 量 wilcox ウィルコクソンの符号付順 位和統計量 signrank
  • 21. 統計解析関数  確率密度 (pdf)  d_dist_  累積分布 (cdf)  p_dist_  分位数 (quantile)  q_rist_  乱数  r_dist_  _dist_ = {unif, norm, pois, binom, ...}
  • 22. 可視化  プロット関数  ‘plot’ ‘、 sunflowerplot’ ‘、 curve’ ‘、 matplot’ ‘、 hist’ ‘、 boxplot’ ‘、 barplot’ ‘、 dotchart’ ‘、 pie’ など  直線描画  ‘abline’ ‘、 segments’ ‘、 arrows’ ‘、 rect’ など  文字描画  ‘text’ ‘、 mtext’ など  枠描画  ‘box’  タイトル・サブタイトル描画  ‘title’  座標軸描画  ‘axis’  凡例描画  ‘legend’  多角形  ‘polygon’
  • 23. その他  クラスター解析  ‘hclust()’  微分  ‘D(f, "x")’ ‘関数 f’ ‘を x’ を変数として微分  ‘deriv(~ f, "x", func=T)’  例: f <- deriv(~ x^2, "x", func=T) f(-2)  積分  ‘integrate(f, b, e)’ ‘関数 f’ ‘を b’ ‘から e’ まで積分
  • 25. 関数定義  ‘オブジェクト hoge’ を関数として定義するとき は、 ‘ hoge <- function (x) { … }’  例:ハノイ  定義 hanoi <- function(f,t,z) if(z>0) { c <- 6-f-t; y <- z-1 hanoi(f, c, y) cat("disc ", z, " p", f, "-> p", t, "n") hanoi(c, t, y) }  実行 honoi(1, 2, 5) moonty
  • 26. 関数定義の例 : λ 計算 ( 定義 )  zero <- function(f) function(x) x λλ f x. xf x. x  succ <- function(n) function(f) function(x) f(n(f)(x)) λλ n f x. f (n f x)n f x. f (n f x)  add <- function(m) function(n) function(f) function(x) m(f)(n(f)(x)) λλ m n f x. m f (n f x)m n f x. m f (n f x)  mul <- function(m) function(n) function(f) m(n(f)) λλ m n f. m (n f)m n f. m (n f)  pow <- function(m) function(n) n(m) λλ m. n mm. n m  pred <- function(n) function(f) function(x) n(function(g) function(h) h(g(f))) (function(u) x) (function(u) u) ← バグあり  n f x. n (n f x. n (λλ g h. h (g f)) (g h. h (g f)) (λλ u. x) (u. x) (λλ u. u)u. u)
  • 27. 関数定義の例 :λ 計算 ( 実行 )  one <- succ(zero)  two <- succ(one)  four <- add(two)(two)  eight <- mul(two)(four)  sixteen <- pow(two)(four)  numbers <- c(one, two, four, eight, sixteen)  lapply(numbers, function(x) paste(x(function(n) n+1)(0), "=", x(function(n) paste("(1+", n, ")", sep=""))(0)))
  • 28. 詳しい情報元  オンライン  http://www.r-project.org/  R プロジェクトのホームページ  http://www.okada.jp.org/RWiki/  日本語で R に関する情報交換をする wiki  http://www.bioconductor.org/  Bioconductor のホームページ  書籍 ( 日本語 )  舟尾 暢男 ( 編集 ) 、 The R Tips― データ解析環境 R の基本技・グ ラフィックス活用集、九天社、 ISBN: 486167039X 、 (2005/02)  岡田 昌史 ( 編集 ) 、 The R Book― データ解析環境 R の活用事例集 、九天社、 ISBN: 4901676970 、新版 (2004/05)  他多数、上記 RWiki のページに関連文献リストが掲載されている
  • 29. Related Projects  Special Areas of Application  Bioconductor: Bioinformatics with R  Microarray Software Comparison  Rgeo: Spatial Statistics with R  gR: gRaphical models in R  Robust: Robust Statistics with R  Rmetrics: Financial Market Analysis with R  Jim Lindsey's R page (nonlinear regression and repeated measurements)  Computational Infrastructure  Omega: Distributed Statistical Computing  R GUIs: Graphical User Interfaces for R  ESS: Emacs speaks Statistics  R web servers: R Interfaces to Web Servers  R Zope  Misc  Statlib S Archive  Virtual Data Center
  • 30. What is R?  R is a language and environment for statistical computing and graphics.  It is a GNU project which is similar to the S language and environment which was developed at Bell Laboratories (formerly AT&T, now Lucent Technologies) by John Chambers and colleagues.  R can be considered as a different implementation of S.  There are some important differences, but much code written for S runs unaltered under R.