n-knuu's logs

憧れ駆動。だいたい競プロ

Rのインストールと簡単な計算

3回生にもなって、社会統計学実習Bなる全学共通科目(一般教養科目)をとることにした。
理由は、シラバスにRをやるってかいてあったから。

初回のガイダンスを聞いてると、どうやら統計のことを受講者がまだあんまりやってないらしく(1・2回生が多いしそりゃそうだ)、統計の基本的なことをやりつつ、それをRで例を実際に計算してみる、みたいな実習らしい。
まあこんなことでもしないと自分からはやらないだろうし、統計学の復習になるからいいやと思い受けてみることにした。

とりあえずRのインストールと基本的な操作をメモしておこうと思う。

Rのインストール

とりあえず筑波大のミラー統計数理研究所のミラー統計数理研究所のミラーをおいておく。
「CRAN」で検索しても出てくる。CRANってのはRのパッケージでユーザが作ったライブラリを公開してたりするらしい。

実際にRを開くと、プロンプトが表れるだけのそっけない感じで、書いたものの再利用もしにくい。
そこで、IDEであるRStudioも一緒に入れたほうが良い。
RStudioのインストールはここのInstallers for ALL Platformsのところから。
RStudioのいいところは定義した変数なり関数なりを表示しておいてくれるところだと現時点では思ってる。
RStudioのエディタで書いたプログラムをカーソルなりで一部だけ選択して実行なんてこともできる。

R言語

以下はR言語についてのメモ。
#以下はコメントとして扱われる。

代入
a <- 1 #整数の代入
Pi <- 3.14 #小数の代入
x <- c(1, 2, 3) # リストの代入、c(…)はリストをつくる関数。

型は勝手に推測してくれるらしい。

計算

演算子は以下。

演算子 意味
+ 加算
- 減算
* 乗算
/ 除算
^ 累乗
%% 剰余
%/% 整数除算

以下は関数。

sqrt(x) # xのルート
abs(x) # xの絶対値
x <- scan("<ファイル名>") # <ファイル名>を開いて、xに代入。
# 空白区切りのデータなどを<ファイル名>に入れて上のようにすると、xはリストとなる。
リスト

リストの演算は、リストの要素ごとの演算となる。
つまり、リストarrayに対してarray+2とすると、リストの各要素に2が加算される。
以下は、リストに適用する関数など。

data[n] # リストdataのn番目の要素
length(data) # リストdataの長さ(要素の個数)
max(data) # リストdataの最大値
min(data) # リストdataの最小値
sort(data) # リストdataを昇順ソート

mean(data) # リストdataの平均
median(data) # リストdataの中央値
var(data) # リストdataの標本分散(不偏分散)
sd(data) # リストdataの標準偏差
cor(data1, data2) # リストdata1とdata2の共分散、covじゃないのか…

hist(data) # リストdataのヒストグラムを描く
#histでは、引数として題名、x軸名、y軸名、クラス数(何個に分けてヒストグラムを集計するか)を指定できる。
hist(data, main="題名", xlab="x軸名", ylab="y軸名", nclass=クラス数)
# hist(data)とだけ書いた場合、下のようになる。
hist(data, main="Histogram of data", xlab="data", ylab="Frequency", nclass=dataの範囲)

plot(data1, data2) # x要素をdata1, y要素をdata2とした散布図を描く
# plotも、引数として題名、x軸名、y軸名を指定できる。
# さらに、プロットする点の形も指定できる。(例えば"+"など)
plot(data1, data2, main="題名", xlab="x軸名", ylab="y軸名", pch=点の形)
# plot(data1, data2)とだけ書いた場合、下のようになる。
plot(data1, data2, main="", xlab="data1", ylab="data2", pch="○")
#さらに、その散布図に縦線や横線を加えることもできる。
abline(v=mean(data1)) # data1の平均(mean)のところに縦線(vはverticalの略)を引く
abline(h=mean(data2), lty=2) # data2の平均のところに横線(hはhorizontalの略)を引く
# ltyはline typeの略で、線の種類を指定できる
# lty=2は破線で、デフォルトでは直線(lty=1)
関数定義

関数を定義する関数functionを利用する。

#関数fooの定義
foo<-function(引数){
  statement 1
  statement 2
  …
  statement n
}

Rの関数の返り値は、関数内で最後に実行した式の結果である。
つまりここでは、statement n の結果が関数の値として返される。

例えば、xを二乗する関数square(x)は以下のように定義できる。

square<-function(x){
  x*x
}

とりあえずやったところまで。(2014/10/11)
C++の勉強とか蟻本の勉強とか全然進んでない。