日々のつれづれ

不惑をむかえ戸惑いを隠せない男性の独り言

Tutorial

sapply関数の使い方

sapply 関数はlapply と同じ効果を示します。ただ、lapply はlist を返すことに対し、sapply関数は状況に応じてvector、matrix、list を返します。 引数の指定はlapply と同じく第1 引数の各要素に第2 引数の関数を処理し、for と 同じ効果を第1 引数のobjec…

lapply関数の使い方

apply関数がmatirixとdata.frameに対して、行もしくは列方向にforと同じ効果で第1 引数に第3引数の関数を処理したように、第1引数の各要素にlapply 関数は第1 引数の各要素に対して、第2 引数で指定する関数を処理します。そして、その結果をlist を返します…

apply関数の使い方

apply関数はmatrixもしくはdata.frameに対してfor文と同じ効果を示します。全てのrow、もしくは全てのcolumn 方向に対して特定の処理を行う場合に便利です。 apply関数はapply(object, 処理方向の指定, 関数, 関数の第2引数以降の指定,...)で定義します。 第…

if文

決まりごと if文は if(条件式){処理 1⃝ }else{処理 2⃝ }で定義し、条件式がTRUEなら処理 1⃝ を実行して、FALSEなら処理 2⃝ を実行します。 ifelse()を使うなら、ifelse(条件式,処理 1⃝ ,処理 2⃝ ) と書く例えば、「xの各要素の繰り返し、i番目の要素(x[i]) …

for文、while文

for文はfor(変数 in 繰り返し条件){処理} で定義し、変数が繰り返し条件を満たすまで処理を繰り返します。 while文はwhile(条件){処理} で定義し、条件が満たされなくなるまで処理を繰り返します。 上の繰り返しをif 文とwhile 文で標記すると もとの文 > x …

Rでの論理式その2

論理式はmatrixと組み合わせても使えます。 > x <- matrix(1:4,2) > y <- t(matrix(1:4,2)) > x - y == 0 # matrix とvector の比較も可 [,1] [,2] [1,] TRUE FALSE [2,] FALSE TRUE また、matrixはvectorに次元を与えたものなので、row方向に結合しています…

Rでの論理式

Rで仕える論理式は==、!=、all関数、any関数があります(返り値はTRUEとFALSE)。 == 前後の完全一致を評価して、各々の要素を一つずつ評価します。 > x <- seq(2,6,by=2) > y <- 3:1*2 > x == y # x とy の各要素同士の一致度を個別に確認 [1] FALSE TRUE F…

listはいろいろ放り込める

listって、かなり変わっている。でも便利。 エクセルっぽく言うと、一つのファイルに複数のワークシートがある感じ。オブジェクトにオブジェクトをいろいろ放り込めます。 > x <- rep(1:3,each=2) # vector > y <- matrix(12:1,nrow=2,dimnames=list(1:2,LET…

data.frameとmatrixの違い-2

久しぶりにR関連のメモ。 data.frameとmatrixの違いはdata.frameとmatrixの違い - 日々のつれづれ、良かった探しで書いた。今日はその続き。 data.frameには、便利なデータアクセス方法がある話。 > x <- data.frame(matrix(1:12,ncol=3)) > colnames(x) <- …

data.frameとmatrixの違い

Rの行列表示には、data.frameというものがある。 matrixとの違っていろいろな型を放り込めるところがすごく便利。 > (x <- matrix(1:12,3)) # 全部が数値のmatrix [,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 6 9 12 > y <- LETTERS[1:3] > cbi…

型の優先順位

Rのオブジェクトには、論理値、因子、整数、数値、文字などがある。 これを型というらしいが、同じオブジェクトに異なる型を入れることはできない。 優先順位があって、文字列が一番強い。 > #x1は論理ベクトル > (x1 <- c(TRUE,FALSE,TRUE)) [1] TRUE FALSE…

意味を持った文字列

TがTRUE、FがFALSEの意味を持つといいました。 Rではそれ以外にも意味を持った文字列があります。 LETTERS 大文字のアルファベットの文字ベクトルです。 > LETTERS [1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" [20] "…

オブジェクトの属性

Rはオブジェクトで計算処理を実現しますが、数値以外には文字や因子を持ちます。 数値 数字からなるオブジェクトで四則演算などの算術処理が可能です。数値の大小で順位を持ちます。 > x <- sample(20,4)#sampple関数は1~10の整数から疑似乱数にしたがって4…

matrix関数

Rは行列処理が直感的。メモリに行列を読み込むから、その分だけ容量が必要。 でも、エクセルから引っ越した僕には違和感がなかった。とても分かりやすい。 matrix関数は行(Row)と列(Column)を持つ、二次元のオブジェクト。 vector関数が一次元のオブジェ…

vector関数

「オブジェクト指向」=「数値計算でたくさん文字を書くかわりに、英数字を使って計算をするための便利技術」と書いた。 つまり、文字と数値からなるオブジェクトは文字や数値が格納されている入れ物です。 だから、 数値を格納したオブジェクトはこうでした…

コロン(:)の使い方

Rでコロン(:)は特別な意味を持っていて、間単に連続値が作れる > 1:5 [1] 1 2 3 4 5 > -5:1 [1] -5 -4 -3 -2 -1 0 1 > -1:-10 [1] -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 てな感じ。コロンの前の数字から後の数字まで1刻みになる だから、計算のスクリプトも少し…

数値の丸め方

四捨五入、切り捨て、繰り上げ、桁揃え > round(1.354)#四捨五入 [1] 1 > round(1.354,1)#小数点以下2桁で四捨五入 [1] 1.4 > round(1.354,2)#小数点以下3桁で四捨五入 [1] 1.35 > floor(1.354)#一番近い、小さい方の整数に(小数点以下、切り捨て) [1] 1 >…

オブジェクトという入れ物

「オブジェクト指向」って、初心者には分かりにくい言葉だと思う。 オブジェクト 【名詞】【可算名詞】 (知覚できる)物,物体. 〔動作・感情などの〕対象 〔of,for〕. オブジェクトを英語で・英訳 - 英和辞典・和英辞典 Weblio辞書 指向 [名](スル)ある方…

Rの基本動作

2年ほど前だろうか、Rの使い方を教える機会があり、自分がRを始めたときに苦労した事をまとめたテキストにした。 でも今はいろんなテキストがあるから、日の目を見なくなっている。 ただ、思い入れもあるので、せめてブログで公開する事にした。Rはインタラ…