群馬大学 | 医学部 | サイトトップ | 医学情報処理演習
第2回に使った関数や文の主なものをまとめます。 (A selected summary of functions and statements used in the 2nd practice is shown here.)
去年受講したW君の多大な協力を得たことに感謝します。(Special Thanks to Mr. W!!)
関数名(name) | 機能(effect) | 使い方(usage) |
---|---|---|
: | 整数列を作る | n:mでnからmまでの整数列をベクトルとして返す。 |
names() | 変数に名前をつける | 例えばx <- 1:4としてnames(x) <- c("apple","orange","melon","grape")とすることでxの各要素に名前をつけられる。 |
table() | データを集計して返す | カテゴリカルデータを集計して度数分布表を返す。引数を2つ以上指定してクロス集計することも可能。 |
barplot() | 棒グラフを描く | 引数にてオプションxlim=c(a,b)としてx軸の定義域をaからbまでとする。ylimでy軸も同様に可。オプションmain="XXXX"でタイトルをXXXXにできる。同様にしてオプションxlab,ylabで各軸に名前をつけられる。さらにbeside=TRUEで積み上げ棒グラフにできる。 |
as.matrix() | 行列化して返す | オブジェクトを行列に型変換する。ベクトルに適用した場合は1列の行列になる。行列は行と列という2次元の構造をもった特殊なベクトルである。要素への参照は[行,列]で行う。 |
matrix() | 行列を作る | matrix(A,n,m)でベクトルAをn×m行列にする。単にmatrix(A,n)でも可能。Aの要素数はnm個でなければならない。例えばmatrix(1:12,2,6)で要素が1から12までの2×6行列になる。ベクトルが配置される順番は,デフォルトでは左上から左下に行き,順番に右にずれていき,最後に一番右の列の一番下で終わるが,オプションbyrow=TRUEをつけることで,左上から右上に行き,順番に下にずれていくようにもできる。つまり,matrix(1:12,2,6)[1,5]は9を返すが,matrix(1:12,2,6,byrow=TRUE)[1,5]は5を返す。 |
length() | オブジェクトの長さを返す | オブジェクトの長さを返す。長さとは,ベクトルなら要素数,リストならリスト項目数,データフレームなら変数数を意味する。文字列の長さを返す関数は別にあって,nchar()である。つまり,length("happy")は1を返すが,nchar("happy")は5を返す。 |
for(){} | 繰り返し処理 | ()内で指定した範囲において{}内の処理を繰り返す。詳しくは補足にて。 |
sum() | 合計値を返す | ベクトルと行列とデータフレームについて,要素の総合計値を返す。行列またはデータフレームの場合は,行ごと(ケースごと)の和を求めたいときはrowSums(),列ごと(変数ごと)の和を求めたいときはcolSums()を使うことができる。リストには使えない(注:リストの各項目について,それぞれの要素の合計を求めたいときは,lapply(リスト名,sum)とする)。 |
text() | グラフィックに指定の文字列を表示する | text(x,y,"XXXX")でグラフィックの(x,y)座標に文字列XXXXを表示できる。 |
paste() | 文字列を結合する | "オプションsep,collapseがある。sep="A"で文字列をAで分ける.collapse="B"で文字列にBを挟んで連結する。AやBは空("")でもかまわない。例paste("A",c("good","bad"),sep="#")で "A#good" "A#bad""になり,paste("A",c("good","bad"),sep="#",collapse="$")で"A#good$A#bad"になる。 |
rownames() | 行の名前を指定 | 行列またはデータフレームXについて,rownames(X)でXの行の名前を指定する。これで名前を参照できるし,名前をつけたければrownames(X) <- c("A","B"…)とすればA,Bと名前がつけられる。 |
colnames() | 列の名前を指定 | 列名(データフレームの場合は変数名)について同上。 |
cbind() | 列ベクトルを連結して行列にする | cbind(A,B)でA,Bを列ベクトルとして連結する。大きさはmax(A,B)×2になる。A,Bのうち短い方は必要な分だけ繰り返される。行ベクトルにしたければrbind()を使う。 |
cumsum() | 累和を求める | |
layout() | グラフィック画面の配置設定 | グラフィックの配置を決める。基本的には引数を行列にすることで等分できる。引数の同じ数字は1つのグラフィックを示すので,工夫すれば凝った配置も可能。 |
t() | 引数の転置行列を返す | オブジェクトは必ずしも行列でなくてもよく,ベクトルでも可能.この場合は1行の行列となる。 |
dotchart() | ドットチャートを描く | オプションはbarplot()と同様に指定できる。 |
pie() | 円グラフを描く | |
hist() | ヒストグラムを描く | ヒストグラムは棒グラフとは本質的に異なるので注意。ヒストグラムは量的データに用いる。つまり横軸が連続している。オプションrightをTRUEにするかFALSEにするかで右端をどうするか決められる。 |
plot() | 散布図を描く | plot(X$A,X$B)でXというデータフレームの変数Aを横軸に,変数Bを縦軸に散布図を描く。plot(B~A,data=X)と同じ.オプションとしてpchでプロット記号を決められる。さらにcolにて色指定も可能。 |
as.integer() | 整数値に型変換する | 型については第1回のリファレンスを参照。自身より高位の型から型変換すると情報は失われる。(例)as.integer(3.14)=3など。他のas.XXXX()もXXXXに型変換するという意味(as.numeric()など)。 |
補足 | for(){}について | 具体的な使い方を示す.T <- 5 として for(k in 1:3){T <- T+k } とすると,Tは11になっている。これはkを1から3まで変化させて,既に5という値が入っているTに足したということである。つまり,((5+1)+2)+3を実行したことになる。 |
[i]について | 関数ではないが載せておく.これはi番目の要素という意味である。ob[3]としたらobというベクトルの3番目の要素を示す。これは2次以上の構造にも使用でき,Y[2,3]でYという行列(またはデータフレーム)の(2,3)成分を返すし,Y[,2]と行指定をブランクにすれば2列目全てをベクトルとして返す。 |