R についての説明

インストール

インストール:The Comprehensive R Archive Network(CRAN https://cran.r-project.org/)からダウンロード (Windows ではR-x.x.x-win.exe のファイル)。詳しくは Rの初歩(奥村晴彦先生)

パッケージのインストール(とりあえずは不要)

RStudio(Rの統合開発環境)

インストール

設定 画面の説明 実行 Excel の読み込み

RGui(64-bit)での操作

Rを インストールの上、 Windows スタートボタン-> R x64 で検索してRGuiを起動
実行

  1. [ファイル]->[新しいスクリプト]を選び、 [R エディタ](真っ白な画面) を起動
  2. [R エディタ]に「Rの命令」を入力 -> 入力の行をドラッグした後に Ctrl+R (または [編集]->[カーソル行または選択中の R コードを実行])
終了、困ったとき、ヘルプ

クリアの方法

 rm(list = ls(all.names = TRUE)) # オブジェクトを全て削除する
 if( dev.cur() > 1 ) dev.off() # プロット欄の図をクリア
エディタ UNIX系のコマンド 履歴
基本操作

数値の代入

a <- 256; a   # a の中に256 を代入して a を表示
a <- a + 1; a # a をインクリメントして a を表示
(b <- 123)    # 括弧をつけると代入したものを表示してくれる
データの基本 画面での出力 コメント if 文
「if(条件) 式1 else 式2」が基本で「ifelse(条件, 式1, else 式2)」もOK
改行を入れるとエラーになるので注意が必要。そのため以下のようにカッコをつけると安全
if (条件){
  式1
} else{
  式2
}
for 文
if(変数 in 範囲) 式
for(i in 1:5) cat(i,"\n") 
データの入出力

データの読み込みと確認

データの保存、書き出し グラフのpdf への保存の例
 x <- 1:10
 y <- 1:10
## pdf 形式で表示 pictex(), postscript(), png() もある
pdf("c:/temp/xy.pdf", family="Japan1") # 日本語フォントの字化け防止
plot(x,y) # 実際の描画
dev.off() # 描画のデバイスを閉じる(これでファイルに保存される)
関数

記述統計の基礎

確率分布の使用

グラフ描画の例

推測統計(推定)

推測統計(検定)

回帰分析(直線回帰, 区間推定, 検定)

  1. 以下のデータをダウンロードしておく。
  2. RGui をたちあげ、 実行に従って実行する。 ただし、「Rの命令」は以下のプログラムのうちどれかとする。
破産の問題

サイコロ投げの大数の法則

中心極限定理

コーシー分布

極値統計の練習

ビュホンの針

# ビュホンの針
rm(list = ls(all.names = TRUE)) # 変数クリア
if( dev.cur() > 1 ) dev.off() # グラフクリア
n <- 300 # 針の本数
NL <- 1  # 針の長さ
W <- 1    # 平行線の縦の間隔
GS <- 5  # 画面サイズ

# 横線の y 座標:0, W, 2W, ..., [GS/W] 
plot(0, 
     xlim=c(0,GS), ylim=c(0,GS), 
     type="n", #プロットしない
     axes=F,   # 軸を描かない
     ann=F)    # 軸ラベルなし

# 平行線をひく 
for(i in 0:floor(GS/W)) abline(h=W*i, 
                               lwd=2, # 太さ2
                               col="blue") 
px <- runif(n, 0, GS)  # x 座標n個
py <- runif(n, 0, GS)  # y 座標n個
angle <- runif(n, 0, pi)  # 角度 n個 (本来はpiを使うのは反則)
HL <- NL/2 # 針の長さの半分
pp<- cbind(px - HL*cos(angle), px + HL*cos(angle), 
            py- HL*sin(angle), py + HL*sin(angle)) # 端点の座標を配列にする

# y座標の始点、終点を求めて平行線と交わっているかどうかを調べる
ytab <-  data.frame(pp[,3],pp[,4]) 
ymax <- apply(ytab, 1, max) # y座標の大きい方
ymin <- apply(ytab, 1, min) # y座標の小さい方
# y座標の始点、終点の間に平行線が存在すればcheck!
check <- (ymin < W*floor(ymax)/W) 

#針を描く関数を定義
needle_line <- function(k){ 
  lines(pp[k,1:2], pp[k,3:4], 
  col=rgb(check[k],0,0.5))# rgb の引数は0..1(色はテキトー)
} 
#針を描く
void <-sapply(1:n, needle_line)

# piの近似
cat("pi =", 2*NL/(W*mean(check)), "\n")

R 基本統計関数マニュアル

  • R 基本統計関数マニュアル(間瀬茂先生)
    [基本パッケージ中の統計関連関数の全体をカテゴリー別に紹介すること,およびそのヘルプドキュメントの「ほぼ忠実な」和訳(ちょっと詳しくなった人のためのもの)]