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

医学情報処理演習:2011年度第5回の関数

今回使った関数や文の主なものをまとめます (A selected summary of functions and statements used in the 5th practice is shown here.)

関数名(name)機能(effect)使い方(usage)
attach()データフレーム利用宣言これ以降,そのデータフレーム(実はリストでもいい)内の変数はデータフレーム名$を付けなくても参照できる。例えば,airqualityというデータフレームの中の変数Windは,attach(airquality)後はairquality$Windとしなくても,たんにWindで参照できる。ただし,実は新しい環境に変数がコピーされるだけなので,そこでWind[1] <- 100などと付値すると,Wind[1]とairquality$Wind[1]が違う内容になってしまう。なお,airquality$Windに対して付値してデータを書き換えても,組み込みデータ自体は不変で,あくまでもメモリ上のコピーが変化するだけなので,Rをいったん終了して再起動すればairquality$Windの中身は元通りである。利用が終わったら必ず終了宣言(detach)する癖をつけておくといい。
detach()データフレーム利用終了宣言attach()により利用開始宣言したデータフレームの利用を終了する。元のデータフレームは変化しない。
function() { }関数定義plus <- function(A,B) { A+B }を実行すると,例えばplus(5,7)で12が返される。{ }の中は複数行になっても構わないが,返り値は最終行の値。第3回の一覧も参照。
as.integer()整数型扱いさせるas.integer(1.5)で1が返る。as.integer("141")で141が返る。as.integer("A")はNAとなるが,as.integer(factor(c("C","B","Z")))はc(2, 1, 3)という整数ベクトルを返す。
sum()合計を求める
ifelse()条件により異なる値を返すX <- c("M","F","F","M"); Z <- ifelse(X=="M",1,2)とすると,Zにはc(1, 2, 2, 1)という整数ベクトルが入る。
c()ベクトル定義{16, 18, 11}という3つの要素をこの順でもつ整数ベクトルを定義するには,c(16, 18, 11)とする。但し連続した整数のベクトルを作る時はc()を使わず,":"を使う方が楽である。例えば,1から10までの整数を要素とするベクトルは,1:10で定義できる。
layout()グラフィック画面の配置設定行列を指定できるので,画面分割を自由に設定できる。例えば,グラフィック画面を1:4で上下に分割し,上ウィンドウを左右に3:1で分割したいなら,5行4列に分割して同じウィンドウには同じ数字を入れればいいので,layout(matrix(c(rep(1,3),2,rep(3,16)),5,4,byrow=TRUE))としてからプロットすれば,最初のプロットが左上,次のプロットが右上,3番目のプロットが下の大きな分割に描画される。
matrix()行列の定義(ベクトルを行列にする)
for () {}()の間{}の処理を繰り返し
barplot()棒グラフを描く
table()カテゴリ変数の度数分布表を計算
paste()文字列にする
names()名前付きベクトルやデータフレームから名前を取りだす
while () {}()の間{}の処理を繰り返しfor () {}との違いは,()の繰り返し回数が決まっていないこと。無限ループになる可能性があるので注意
choose()組み合わせ数
^累乗5^2は5の2乗なので25となる
curve()定義域を指定して関数の曲線を描く使い方は,curve(関数名, 定義域の下限, 定義域の上限)。つまり,-πからπまでのサインカーブを描かせるには,curve(sin(x),-pi,pi)とする。
dbinom()2項分布の確率(密度)関数
dnorm()正規分布の確率密度関数
qnorm()正規分布の分位点関数
pnorm()正規分布の確率母関数
rnorm()正規分布に従う乱数を発生させる
dchisq()カイ二乗分布の確率密度関数
qchisq()カイ二乗分布の分位点関数
pchisq()カイ二乗分布の確率母関数
dt()t分布の確率密度関数
qt()t分布の分位点関数
pt()t分布の確率母関数
df()F分布の確率密度関数
qf()F分布の分位点関数
pf()F分布の確率母関数
read.delim()タブ区切りテキスト形式データファイルの内容をデータフレームとして読み込む
shapiro.test()分布の正規性についてShapiro-Wilkの検定を行う
qqnorm()正規確率プロットの描画数値ベクトルを引数として与え,正規確率プロット(Normal Q-Q plot)を行う。もしデータが正規分布していれば直線に乗るはずで,その直線を描かせるにはqqline()を用いる
library(fmsb)fmsbライブラリをメモリに読み込む
geary.test()分布の正規性についてGearyの検定を行う(注:fmsbライブラリを読み込んだ後で実行)
tapply()条件別に同じ関数をデータベクトルに適用tapply(11:15,factor(c("M","F","M","F","F")),mean)とすると,2番目の引数には"M"と"F"の2水準あるので,1番目の引数であるデータをその2水準によってグループ分けし,グループごとに,平均値を求める関数mean()を適用してくれる。tapplyの引数にする時は,関数名に()は付けないことに注意。この例を実行すると,
       F        M
13.66667 12.00000
という結果が出る。つまり,2番目の引数の値が"F"となっている,1番目の引数に与えられたデータベクトル11:15の2, 4, 5番目の値である{12, 14, 15}の平均値である13.66667と,2番目の引数の値が"M"となっている1, 3番目の{11, 13}の平均値である12.00000が,その順番で計算され表示される。

リンクと引用について