群馬大学 | 医学部 | サイトトップ | 医学情報処理演習
第3回に使った関数や文の主なものをまとめます (A selected summary of functions and statements used in the 3rd practice is shown here.)
このまとめには,この演習を受講している1人であるW君の多大な協力を得ました。感謝します。(Special Thanks to Mr. W!!)
関数名(name) | 機能(effect) | 使い方(usage) |
---|---|---|
mean() | 算術平均を返す | 例えばmean(c(2,13,4,9))で7を返す。引数は行列なども可。ただしmean(0.2,0.4)などとやるとトリム平均という全く別の事を実行してしまうので注意。 |
length() | オブジェクトの長さを返す | 行列の要素数も返すことが出来る。また、Rではスカラーは長さ1のベクトルになっている。前回の一覧も参照。 |
sum() | 合計値を出す | ベクトルまたは行列の要素の合計値を返す。前回の一覧も参照。 |
median() | 中央値を返す | 与えたデータの中央値(昇順にしてちょうど中央にくる値)を返す。データとして取ることができる引数は,通常はベクトルである。行列を渡すと全要素をつないだ1つのベクトル扱いする。リストやデータフレームは引数に取れない。データフレームのすべての変数について,それぞれの中央値を計算させたい場合は,データフレームが特殊なリストであることを利用して,lapply(データフレーム名, median)とすればよい。 |
function(){ } | 関数を定義する | 例えばmean.median <- function(X){c(mean(X),median(X))}とする。mean.median(c(13,2,4,9))で7.0および6.5として平均値と中央値を返すようになる。 |
rep() | 繰り返して返す | 最初の引数を、2番目の引数分だけ繰り返す。例としてrep(c(3,5,6),2)とすると、3,5,6,3,5,6となる。 |
table() | 度数分布表を返す | カテゴリカルデータの度数分布表を返す。ベクトルを2つ以上指定してクロス集計も可能。(ただし3以上は見づらい) |
for(){} | ()の間{}内の処理を繰り返す | 例 T<- 15としてfor(k in 1:3){T <- T*k}でTは90。これは((T*1)*2)*3を実行したことになる。第2回の一覧表の補足も参照。 |
as.numeric() | 数値型に型変換する | 型がcomplexなら虚数部は失われる。character型でも"13"のような数字であれば変換できるが"World"のような文字列はNAとなる。 |
names() | 変数名を指定する | 変数名を見ることもできるし、付値することで名前をつけることもできる。 |
sort() | データをソートする | デフォルトでは昇順にデータをソートする。降順にしたければオプションdec=TRUEとすればよい。 |
curve() | 関数のグラフィックを描く | curve(F(x),A,B)で関数F(x)を(A,B)区間で図示する。オプションではlty=1で実線、=2で破線。さらにadd=TRUEで追加の図示も可。他にもオプションとしてxlabやylabもある。例としてcurve(sin(x),-pi,pi,lty=2)で-πからπまでSin(x)を破線で図示してくれる。 |
dnorm() | 正規分布の確率密度関数 | 正規分布の確率密度関数を与える.dnorm(x,A,B)でAを平均とし、Bを標準偏差1として関数を返す意味である。例えばdnorm(-5:5,0,1)としてみると、-5から5の範囲で区間を幅1で区切って確率密度を返してくれる。 |
quantile() | 分位数を返す | quantile(X,A)でXの100Aパーセンタイル値を返す(ただしXは数値ベクトル)。例えばquantile(23:33,c(0.2,0.6))で25,29を返す。ちなみにAは指定しなければデフォルトでc(0,0.25,0.5,0.75,1)となっている。 |
fivenum | 五数要約値を返す | 引数は数値ベクトル。五数要約値とは簡単にいえば最小値,第1四分位,中央値(第2四分位),第3四分位,最大値のことである。 |
cat() | 文字列を返す | 基本的な文字列出力を行う。 cat()を使うと""無しで文字列を表示する。 cat()は出力後に改行しないので、引数にて"\n"を入れる。 |
abs() | 絶対値を返す | complex型の値,つまり複素数も引数に取ることができる(複素数のabs()で返るのは,Mod()と同じく,複素平面におけるその複素数ベクトルの長さである。例えば複素数1-5iについて,abs(1-5i)とすると,sqrt(1^2+5^2)の計算結果として5.09902が返る。なお,複素数の実部を取りだす関数はRe(),虚部を取りだす関数はIm()である)。ベクトルや行列,データフレームでは各要素の絶対値を返す。リストを引数に取ることはできない。リストのすべての要素について絶対値を取りたいときはlapply(リスト名, abs)とする。 |
var() | 不偏分散を返す | 引数はベクトル(引数として行列を渡すと列ごとの不偏分散が対角成分,n列目とm列目の共分散が(n,m)及び(m,n)の要素となる行列が返る)。データのばらつき具合を知ることが可能な不偏推定量。ただし元のデータと次元が異なるので注意。 |
sd() | 標準偏差を返す | これも通常,引数はベクトル。不偏分散の平方根を取って、元のデータと次元を同じにしたもの。データが正規分布に従うようなときには平均値±1.96SDは95%信頼区間と呼ばれ、データの95%がそこに属するとされる。 |
補足 | 中央値について | 中央値は偶数個の要素から成るデータを扱う時(仮に2n個とすると)、n番目とn+1番目の算術平均を示す。 |
最頻値について | あるデータDの最頻値を求めたければnames(sort(table(D),dec=TRUE))[1]とすればよい。 | |
piについて | Rではpiで円周率を表すπを示す。 | |
分位数について | データを昇順に並べて、その要素をn等分するような群に分けるとき、その境にある要素をn分位数という。注意すべきは範囲(最小値から最大値まで)をn等分するわけではないこと。これは例えばquantile(c(1:10,100))とすれば確かめられる。 | |
パーセンタイルについて | 100分位数のこと。例えば中央値は50パーセンタイル値だし、最大値は100パーセンタイル値である。 |