「R」の版間の差分
ナビゲーションに移動
検索に移動
(同じ利用者による、間の17版が非表示) | |||
1行目: | 1行目: | ||
− | | [[数学]] | [[統計]] | [[ベイズ統計]] | | + | | [[数学]] | [[統計]] | [[ベイズ統計]] | [[データ解析]] | [[機械学習]] | [[TensorFlow]] | |
{{amazon|4274219585}} | {{amazon|4274219585}} | ||
==環境== | ==環境== | ||
50行目: | 50行目: | ||
<pre> | <pre> | ||
> library(help=base) | > library(help=base) | ||
+ | </pre> | ||
+ | ===作業ディレクトリ=== | ||
+ | <pre> | ||
+ | setwd("C:/work/jravan")> setwd("C:/work/jravan") | ||
+ | > getwd() | ||
+ | [1] "C:/work/jravan" | ||
</pre> | </pre> | ||
206行目: | 212行目: | ||
==グラフ作成== | ==グラフ作成== | ||
===高水準作図関数=== | ===高水準作図関数=== | ||
− | + | *一枚の完成されたグラフを書く | |
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
242行目: | 248行目: | ||
| persp(x軸, y軸, z軸) | | persp(x軸, y軸, z軸) | ||
|} | |} | ||
+ | |||
===低水準作図関数=== | ===低水準作図関数=== | ||
*グラフに装飾を施す | *グラフに装飾を施す | ||
297行目: | 304行目: | ||
</pre> | </pre> | ||
[[File:R_graph.png|400px]] | [[File:R_graph.png|400px]] | ||
+ | ===グラフの消去=== | ||
+ | *frame() | ||
+ | *plot.new() | ||
==データ解析== | ==データ解析== | ||
445行目: | 455行目: | ||
data.frame(列名1=ベクトル1,列名2=ベクトル2,・・) | data.frame(列名1=ベクトル1,列名2=ベクトル2,・・) | ||
</pre> | </pre> | ||
+ | ====作成==== | ||
====外部ファイルからデータフレームを作成==== | ====外部ファイルからデータフレームを作成==== | ||
*ファイルの中身を読み込む | *ファイルの中身を読み込む | ||
452行目: | 463行目: | ||
**odbcConnectXXXX() ファイルにアクセス | **odbcConnectXXXX() ファイルにアクセス | ||
**sql.Query() データを読み込み | **sql.Query() データを読み込み | ||
− | ==== | + | =====テキストファイルから===== |
+ | <pre> | ||
+ | HR <- read.table("2020_harai_tan.txt", header=TRUE, sep=",") | ||
+ | </pre> | ||
+ | =====CSVファイルから===== | ||
+ | <pre> | ||
+ | HR <- read.csv("2020_harai_tan.txt", head=T) | ||
+ | </pre> | ||
=====ベクトルから===== | =====ベクトルから===== | ||
+ | <pre> | ||
+ | HR2 <- data.frame(stousuu=HR$stousu, tan_ninki=HR$tan_ninki, tan_pay=HR$tan_pay) | ||
+ | </pre> | ||
+ | |||
+ | ====閲覧==== | ||
+ | ※HRはデータフレーム名 | ||
+ | *head() 先頭を見る | ||
+ | <pre> | ||
+ | > 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 | ||
+ | </pre> | ||
+ | *tail() 末尾を見る | ||
+ | <pre> | ||
+ | > 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 | ||
+ | </pre> | ||
+ | *データエディタで閲覧 | ||
+ | <pre> | ||
+ | >edit(HR) | ||
+ | </pre> | ||
+ | ====集計==== | ||
+ | *データフレームの列ごとの特徴を見ることができる | ||
+ | *数値ベクトルの場合、上から順に、最小値、四分位点、中央値、平均、最大値が表示される | ||
+ | *因子ベクトルの場合、頻度が表示される | ||
+ | <pre> | ||
+ | > 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 | ||
+ | </pre> | ||
+ | *plot にデータフレームを指定することで、各変数に対する | ||
+ | <blockquote>用いる変数が2以上で、かつ変数がそれほど多くない量的データ場合は、本格的な解析を行う前に、すべての変数を組み合わせた散布図について考察を行うことで、データ間の関連性を視覚的に把握することができる。1つの画面に複数の変数を組み合わせた散布図を対散布図、あるいは散布図行列という</blockquote> | ||
+ | [https://www1.doshisha.ac.jp/~mjin/R/Chap_07/07.html#:~:text=1%E3%81%A4%E3%81%AE%E7%94%BB%E9%9D%A2%E3%81%AB%E8%A4%87%E6%95%B0,%E3%81%AF%E3%80%81%E9%96%A2%E6%95%B0%20pairs%20%E3%82%92%E7%94%A8%E3%81%84%E3%82%8B%E3%80%82 対散布図]を描く | ||
+ | <pre> | ||
+ | >plot(HR) | ||
+ | </pre> | ||
+ | [[File:R_graph_tuisanpu.png|300px]] | ||
==R Studio== | ==R Studio== |
2021年6月3日 (木) 15:24時点における最新版
| 数学 | 統計 | ベイズ統計 | データ解析 | 機械学習 | 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 矢木浩人