統計解析

欠損値を除いて平均をとる

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がポイント


  編集 添付 リロード   新規 一覧 単語検索   最終更新のRSS