| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

R

提供: MyMemoWiki
ナビゲーションに移動 検索に移動

| 数学 | 統計 | ベイズ統計 | データ解析 | 機械学習 | 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")
  1. 作図デバイスを開く(ファイル名の指定)
  2. プロット
  3. 作図デバイスを閉じる(ファイルが保存される)
> pdf(file='graph.pdf')
> plot(1:100)
> dev.off()

R graph.png

グラフの消去

  • frame()
  • plot.new()

データ解析

データ解析の流れ

  1. データを読み込ませる
  2. 読み込ませたデータをプロット
  3. 読み込ませたデータの統計量を求める

ボストンデータセット

> 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)

R hist.png

基本統計量

意味 関数
総和 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 graph tuisanpu.png

R Studio

  • Alt + Shift + k : キーボードショートカット一覧

reader

library(readr)
dataset <- read_csv("O1.csv")
View(dataset)

1081 r reader.jpg

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 の下で造られました