第3回SkypeでR勉強会簡易まとめ
id:wakuteka さんが主催のSkypeでR勉強会に参加しました。
とりあえず取り急ぎ簡易まとめ。
rbind(x), cbind(x) #行列にxを追加する sort(x) #順序を並び替える sort(x, decreasing=True) #逆順に並び替える ->rev(x) sort(x, index.return=TRUE) #順序を並び替えかえたものと、順番(order)を返す。 rev(x) #逆順に並び替える x$[colname] x$[rowname] #データフレームxの任意の行要素、もしくは列要素を取り出す #行列の場合はデータフレームにキャストするか、x[,"A"]を使う x[, "A"] #行列のA列要素を取り出す is.matrix(x) #xが行列かどうか調べる。返値は真偽値 class(x) #xの型を返す x[, order(x[1,])] #一行のデータの順で行列を並び替え order(x, y,...) #sort.listより一般的に、複数オブジェクトに基づく整列順序を定める。 #返ってくるのは整列後の順番(index)が返ってくる。 > a.order <- order(a) > a[a.order] を用いると、sortされたものが返ってくる。 算術演算 +, -, *, /, ^ 以外に、 %/% …除算の商 ex.) 5%/%2 == 2 %% …除算の余 ex.) 5%%2 == 1 #一般的な%では余りが返らないので注意。%はエスケープかもしれない。 論理演算 !, &, | 以外に、 &&, ||は、&, |と同じであるが、演算が一度でも成立していれば終了する。 ex.) > Lx <- c(F,F,T,T) > Ly <- c(T,F,T,F) > Lx && Ly [1] FALSE ref.) ぜんぶの組が同一かどうか知りたければ > identical(all.equal(Lx,Ly),TRUE) [1] FALSE 行列計算 +, -は一般的であるが、 * は要素のかけ算である点に注意する。 普通の行列のかけ算は %*% で行う。 > A [,1] [,2] [1,] 1 1 [2,] 2 4 > B [,1] [,2] [1,] 4 3 [2,] 2 4 > A+B [,1] [,2] [1,] 5 4 [2,] 4 8 > A-B [,1] [,2] [1,] -3 -2 [2,] 0 0 > A*B [,1] [,2] [1,] 4 3 [2,] 4 16 > 2*A [,1] [,2] [1,] 2 2 [2,] 4 8 > A%*%B [,1] [,2] [1,] 6 7 [2,] 16 22 行列演算 逆行列を求める > solve(A) [,1] [,2] [1,] 2 -0.5 [2,] -1 0.5 単位行列 > A%*%solve(A) [,1] [,2] [1,] 1 0 [2,] 0 1 固有値、固有ベクトル > eigen(A) $values [1] 4.5615528 0.4384472 $vectors [,1] [,2] [1,] -0.2703230 -0.8719282 [2,] -0.9627697 0.4896337 diag(x) #任意のx次数の単位行列を得る ex.) > diag(3) [,1] [,2] [,3] [1,] 1 0 0 [2,] 0 1 0 [3,] 0 0 1
生データはこちら
http://dl.getdropbox.com/u/348688/R%E5%8B%89%E5%BC%B7%E4%BC%9A3%E3%81%BE%E3%81%A8%E3%82%81.txt