群馬大学 | 医学部 | サイトトップ | 医学情報処理演習

医学情報処理演習:2011年度第2回の関数一覧など

第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列目全てをベクトルとして返す。

リンクと引用について