統計解析 †欠損値を除いて平均をとる †mean(c(1, 2, NA ), na.rm=T) 線形回帰して傾きを得る †x=1:9 y=sin(1:9) lm(y~x)$coefficients 線形回帰して決定係数R^2を得る †x=1:9 y=sin(1:9) summary(lm(y~x))$r.squared ここ参考に 作図 †適当に関数を表示する †x=seq(0,1,length=100) plot(x,sin(x),type="l") 原点で軸を交差させる †par(xaxs="i", yaxs="i") x=seq(0,1,length=100) plot(x,sin(x),type="l") プロットの種類をかえる †plot(sin(1:9),pch=20) pchの種類はここ参照 プロットサイズをかえる †plot(sin(1:9),pch=20,cex=2) 複数の図をplotするときにスペースを調整する †par(mfrow = c(2, 3 ) ) par(mar=c(5,5,0.3,0.3)) //下左上右のmargin for(i in 1:6){plot(sin(1:9))} 色の指定 †
plotの目盛りを自由に変更する †plot(sin(1:9), xaxt="n") axis(side=1, at=c(0,3,5,8)) 図を正方形にする。 †par(pty="s") plot(sin(1:9)) 軸ラベルを記述しない †plot(sin(1:9),ann=F) プロットの目盛りの振り方を変える †x=seq(0,1,len=100) plot(x,sin(x),xaxp=c(0, 0.5, 8)) 0から0.5まで8等分する(目盛りは9個となる。) 文字列 †文字列をnumericにキャストする †as.numeric("5") 文字列の結合 †paste("ab","cd",sep="") ベクトルと行列 †タブ区切りで行列をファイルに出力する †write.table(x,"x.txt",sep="\t") 空欄のあるデータの読み込み †ここ参照 data.delim() ベクトルから特定の条件(複数)のものを抽出 †x=c(0,1,2,3,4,5,6,7,8,9,10,11,12) y=x[intersect(which(x%%2==0),which(x%%3==0))] #AND z=x[union(which(x%%2==0),which(x%%3==0))] #OR 一つのベクトルの並び替え順に他のベクトルの並び替えをする †x <- c(3,2,5,1,4) y <- c(5,3,2,4,1) ox <- order(x) x <- x[ox] y <- y[ox] ベクトル反転 †x=c(1,2,3) rev(x) 数学 †組み合わせの数 †choose(n,r) FFT(高速フーリエ変換) †x = c(1,2,3,4) fft(x) でてくる値の横軸は周波数である。元の時系列が、a [s]ごとb+1回のサンプリングだったとすると、周波数領域の一目盛りはa*b [1/s]であり、周波数の最大値はb/2番目までのポイントである。 ここ参考にした。 積分する †f <- function(x) x^2 #一変数関数を作らないといけない。 integrate(f,0,1) ただしf文を含む自作関数は先頭の関数しか有効でない??(うまくいっているような気もするが警告がでる) f <- function(x) { if(x>0) return(x) else return(-x) } integrate(f,-1,0) ここ参考に 2変数関数を図示する †x<-seq(0,1,by=0.1) y<-seq(0,1,by=0.1) f<-function(x,y){x^2+y^2} z<-outer(x,y,f) image(x,y,z) outerがポイント |