第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