R
ナビゲーションに移動
検索に移動
| 数学 | 統計 | ベイズ統計 | データ解析 | 機械学習 | TensorFlow |
目次
環境
インストール
環境
HELP
- HELPを表示
> help(log) > ?log
- 引数を確認
> args(log) function (x, base = exp(1))
データセット
- 使用可能なデータセットを表示
data()
- データセットのHELP
> help(Indometh)
パッケージ
- Rでは、関数及びデータを文野別に分類してパッケージにまとめている
- 拡張パッケージのインストールも可能
- どのようなパッケージが存在するのか調べる
> library()
- 'base'パッケージを呼び出す
> library(base)
- 'base'パッケージのHELP
> library(help=base)
作業ディレクトリ
setwd("C:/work/jravan")> setwd("C:/work/jravan") > getwd() [1] "C:/work/jravan"
基本
代入
- 代入
> x <- log(100) > x [1] 4.60517
代入と表示を同時に行う
- ()で囲む
> (x <- 1:5) [1] 1 2 3 4 5
ベクトル
- 複数の値をまとめる概念
- c() で、複数の値を一つにまとめることができる
- 1,2,3,4,5を一つにまとめて変数に代入
> x <- c(1,2,3,4,5) > x [1] 1 2 3 4 5
- まとめた値の平方根をとる
> sqrt(x) [1] 1.000000 1.414214 1.732051 2.000000 2.236068
ベクトルの要素
- 取得
> x[2] [1] 2
- 代入
> x[2] <- 8 > x [1] 1 8 3 4 5
ベクトルの結合
- c(ベクトル,値)
- c(ベクトル,ベクトル)
> x <- c(x, c(6,7,8)) > x [1] 1 8 3 4 5 6 7 8
ベクトル演算
- 互いに対応するベクトル要素どうしの演算となる
> c(1,2,3) + c(3,2,1) [1] 4 4 4
- 一つの値の場合、全ての要素に演算
> c(1,2,3) * 2 [1] 2 4 6
インクリメント・デクリメントするベクトルの生成
- 1から5 まで1ずつ増える
- 3から-3まで1ずつ減る
> 1:5 [1] 1 2 3 4 5 > 3:-3 [1] 3 2 1 0 -1 -2 -3
数学関数
意味 | 関数 |
---|---|
三角関数 | sin(x), cos(x), tan(x) |
逆三角関数 | asin(x), acos(x), atan(x) |
双曲線関数 | sinh(x), cosh(x), tanh(x) |
逆双曲線関数 | asinh(x), acosh(x), atanh(x) |
対数 | log(x), log10(x), log2(x), log1p(x) |
指数関数 | exp(x), expm1(x) |
平方根 | sqrt(x) |
四捨五入 | round(x) |
小数切り下げ | floor(x) |
小数切り上げ | celling(x) |
整数部分 | trunc(x) |
xの符号 | sign(x) |
関数定義
関数名 <- function(引数) { : 計算処理 return (戻値) }
エディタの起動
- fix(関数名)
制御
条件分岐(if/else)
if (条件式) { : true の場合 } else { : false の場合 }
繰り返し(for)
for (変数 in リスト) { : 繰り返し処理 }
数値計算
ニュートン法(uniroot)
多項式の解(polyroot)
- 二次方程式
- x^2 + x - 5
> polyroot(c(-5,1,1)) [1] 1.791288-0i -2.791288+0i
グラフ作成
高水準作図関数
- 一枚の完成されたグラフを書く
グラフ | 関数 |
---|---|
散布図 | plot(ベクトル),plog(ベクトル1 , ベクトル2) |
ヒストグラム | hist(ベクトル) |
箱ひげ図 | boxplot(ベクトル) |
棒グラフ | barplot(各カテゴリの頻度が入ったベクトル) |
円グラフ | pie(各カテゴリの頻度が入ったベクトル) |
分割表の図 | mosaicplot(行列データ) |
スターチャート | stars(行列データ) |
対散布図 | pairs(行列データ) |
1次元関数のグラフ | curve(関数, 左端, 右端) |
2次元関数のグラフ | persp(x軸, y軸, z軸) |
低水準作図関数
- グラフに装飾を施す
図形 | 関数 |
---|---|
点 | points() |
直線 | lines(), segments(), abline() |
格子 | grid() |
矢印 | arrows() |
矩形 | rect() |
文字 | text(), mtext(), title() |
枠と軸 | box(), axis() |
凡例 | legend() |
多角形 | plygon() |
グラフの保存
- 保存ディレクトリの指定
> setwd('~/Workspaces/R') > getwd() [1] "/Users/hirotoyagi/Workspaces/R"
- サポートデバイスを調べる
help("Devices")
- 作図デバイスを開く(ファイル名の指定)
- プロット
- 作図デバイスを閉じる(ファイルが保存される)
> pdf(file='graph.pdf') > plot(1:100) > dev.off()
グラフの消去
- frame()
- plot.new()
データ解析
データ解析の流れ
- データを読み込ませる
- 読み込ませたデータをプロット
- 読み込ませたデータの統計量を求める
ボストンデータセット
> library(MASS) > head(Boston) crim zn indus chas nox rm age dis rad tax ptratio black lstat medv 1 0.00632 18 2.31 0 0.538 6.575 65.2 4.0900 1 296 15.3 396.90 4.98 24.0 2 0.02731 0 7.07 0 0.469 6.421 78.9 4.9671 2 242 17.8 396.90 9.14 21.6 3 0.02729 0 7.07 0 0.469 7.185 61.1 4.9671 2 242 17.8 392.83 4.03 34.7 4 0.03237 0 2.18 0 0.458 6.998 45.8 6.0622 3 222 18.7 394.63 2.94 33.4 5 0.06905 0 2.18 0 0.458 7.147 54.2 6.0622 3 222 18.7 396.90 5.33 36.2 6 0.02985 0 2.18 0 0.458 6.430 58.7 6.0622 3 222 18.7 394.12 5.21 28.7
ヒストグラムを書く
> hist(Boston$rm)
基本統計量
意味 | 関数 |
---|---|
総和 | 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) |
5数要約 | fivenum(x) |
クォンタイル点 | quantile(x) |
範囲 | range(x) |
平均 | ave(x) |
関数とプログラミング
インデックス
記号 | 意味 |
---|---|
x[i] | i番目の要素にアクセス |
xi | i番目のリスト要素にアクセス |
x$a | xの中のaを取り出す |
x[i,j] | i行j列目の要素にアクセス |
x$"a" | xの中のaを取り出す |
条件分岐
if ,else
if (条件式) { } else { }
switch
switch(<条件式> 文字列 = <条件式=文字列1の場合の式>, : )
繰り返し
for
for ( ループ変数 in リスト ) { }
while
while (条件式) { }
break,next
- 抜ける場合break
- 次へは、next
データハンドリング
- Rで本格的なデータを扱う際には、データフレームという形式にする。
- データフレーム上で様々な処理を行う。
データフレーム
- データフレームとは、data.frame クラスを持つリストのこと
- 数値ベクトルや文字ベクトル、因子ベクトル(文字型ベクトル)などの異なる型のデータをまとめて1つの変数として持つ
- 外見は行列と同じ二次元配列だが、データフレームの各行・列はラベルをなからずもち、ラベルによる操作が可能。
- 簡単作成するには、いくつかのデータをベクトルで用意しておき、それらをdata.frame()で変換する
data.frame(列名1=ベクトル1,列名2=ベクトル2,・・)
作成
外部ファイルからデータフレームを作成
- ファイルの中身を読み込む
- read.table()
- scan()
- RODBCパッケージ
- odbcConnectXXXX() ファイルにアクセス
- sql.Query() データを読み込み
テキストファイルから
HR <- read.table("2020_harai_tan.txt", header=TRUE, sep=",")
CSVファイルから
HR <- read.csv("2020_harai_tan.txt", head=T)
ベクトルから
HR2 <- data.frame(stousuu=HR$stousu, tan_ninki=HR$tan_ninki, tan_pay=HR$tan_pay)
閲覧
※HRはデータフレーム名
- head() 先頭を見る
> head(HR,5) kaisai jyou race_no ttousu stousu tan_uma tan_pay tan_ninki 1 20200105 6 1 16 16 7 360 2 2 20200105 6 2 16 16 7 590 3 3 20200105 6 3 16 16 15 390 3 4 20200105 6 4 16 16 1 270 1 5 20200105 6 5 10 10 6 160 1
- tail() 末尾を見る
> tail(HR, 2) kaisai jyou race_no ttousu stousu tan_uma tan_pay tan_ninki 3455 20201227 9 11 16 16 9 740 4 3456 20201227 9 12 14 13 1 380 1
- データエディタで閲覧
>edit(HR)
集計
- データフレームの列ごとの特徴を見ることができる
- 数値ベクトルの場合、上から順に、最小値、四分位点、中央値、平均、最大値が表示される
- 因子ベクトルの場合、頻度が表示される
> summary(HR) kaisai jyou race_no ttousu stousu tan_uma tan_pay Min. :20200105 Min. : 1.00 Min. : 1.00 Min. : 5.00 Min. : 5.00 Min. : 1.000 Min. : 110 1st Qu.:20200328 1st Qu.: 4.75 1st Qu.: 3.75 1st Qu.:12.00 1st Qu.:12.00 1st Qu.: 4.000 1st Qu.: 290 Median :20200627 Median : 6.00 Median : 6.50 Median :15.00 Median :15.00 Median : 7.000 Median : 490 Mean :20200657 Mean : 6.16 Mean : 6.50 Mean :13.97 Mean :13.93 Mean : 7.493 Mean : 1063 3rd Qu.:20200946 3rd Qu.: 8.00 3rd Qu.: 9.25 3rd Qu.:16.00 3rd Qu.:16.00 3rd Qu.:11.000 3rd Qu.: 990 Max. :20201227 Max. :10.00 Max. :12.00 Max. :18.00 Max. :18.00 Max. :18.000 Max. :38250 tan_ninki Min. : 1.000 1st Qu.: 1.000 Median : 2.000 Mean : 3.427 3rd Qu.: 5.000 Max. :18.000
- plot にデータフレームを指定することで、各変数に対する
用いる変数が2以上で、かつ変数がそれほど多くない量的データ場合は、本格的な解析を行う前に、すべての変数を組み合わせた散布図について考察を行うことで、データ間の関連性を視覚的に把握することができる。1つの画面に複数の変数を組み合わせた散布図を対散布図、あるいは散布図行列という
対散布図を描く
>plot(HR)
R Studio
- Alt + Shift + k : キーボードショートカット一覧
reader
library(readr) dataset <- read_csv("O1.csv") View(dataset)
dplyr
install
install.packages("dplyr")
Tips
Error in o1 %>% head : could not find function "%>%"
> install.packages("magrittr") > library(magrittr) Warning message: パッケージ ‘magrittr’ はバージョン 3.4.4 の R の下で造られました
© 2006 矢木浩人