時系列分析で役立つ
http://d.hatena.ne.jp/teramonagi/20100921/1285072449
マニュアル
http://cran.r-project.org/web/packages/xts/vignettes/xts.pdf
http://cran.r-project.org/web/packages/xts/xts.pdf
2013年1月31日木曜日
2013年1月30日水曜日
2013年1月29日火曜日
Rで行列の最大値を呼び出す
> x<-matrix(1:9,nrow=3,ncol=3)
> x
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> max(x) #行列全要素の最大値
[1] 9
> max(x[1,]) #行列1行目の最大値
[1] 7
> max(x[,1]) #行列1列目の最大値
[1] 3
行列がNAを含む場合は
max( , na.rm=TRUE)
とする
> x
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> max(x) #行列全要素の最大値
[1] 9
> max(x[1,]) #行列1行目の最大値
[1] 7
> max(x[,1]) #行列1列目の最大値
[1] 3
行列がNAを含む場合は
max( , na.rm=TRUE)
とする
Rでデータフレームに列を加える
> x <- data.frame(a=1:3, b=letters[1:3]) > x["c"] <- c(TRUE,TRUE,FALSE) > x a b c 1 1 a TRUE 2 2 b TRUE 3 3 c FALSE
http://www.okada.jp.org/RWiki/?%A5%C7%A1%BC%A5%BF%A5%D5%A5%EC%A1%BC%A5%E0Tips%C2%E7%C1%B4#bae7f71f
Rで回帰残差にNAを含める方法
> D<-data.frame(x=c(NA,2,3,4,5,6),y=c(2.1,3.2,4.9,5,6,7),residual=NA)
> Z<-lm(y~x,data=D)
> D[names(Z$residuals),"residual"]<-Z$residuals
> D
x y residual
1 NA 2.1 NA
2 2 3.2 -0.28
3 3 4.9 0.55
4 4 5.0 -0.22
5 5 6.0 -0.09
6 6 7.0 0.04
http://stackoverflow.com/questions/6882709/how-do-i-deal-with-nas-in-residuals-in-a-regression-in-r
Rのデータフレーム
"統計の関数を利用してデータ解析するには,
Rで使用するデータは「データフレーム」の形式でなければならない."
http://133.100.216.71/R_analysis/basic_data_frame00.html
Rで使用するデータは「データフレーム」の形式でなければならない."
http://133.100.216.71/R_analysis/basic_data_frame00.html
2013年1月28日月曜日
Rで行列からベクトルを取り出す
> x <- matrix(runif(5*4),ncol=5,nrow=4) # ランダムな行列作成
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 0.2849401 0.87684443 0.02844246 0.5394180 0.36615681
[2,] 0.3301715 0.09579336 0.61150386 0.6823147 0.74778217
[3,] 0.8273795 0.22615717 0.59909658 0.7701186 0.04878373
[4,] 0.9898318 0.71143105 0.95935694 0.5836727 0.63342126
> y<-as.numeric(x[1:dim(x)[1]]) # 1列目をベクトルとして取り出す
> y
[1] 0.2849401 0.3301715 0.8273795 0.9898318
> y<-as.numeric(x[1:dim(x)[1],1]) # 1列目をベクトルとして取り出す
> y
[1] 0.2849401 0.3301715 0.8273795 0.9898318
> y<-as.numeric(x[1:dim(x)[1],3]) # 3列目をベクトルとして取り出す
> y
[1] 0.02844246 0.61150386 0.59909658 0.95935694
> y<-as.numeric(x[2,1:dim(x)[2]]) # 2行目をベクトルとして取り出す
> y
[1] 0.33017152 0.09579336 0.61150386 0.68231470 0.74778217
参考 dim()
> x <- matrix(runif(5*4),ncol=5,nrow=4)
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 0.48979355 0.7012950 0.0197624 0.5450226 0.75162774
[2,] 0.04856294 0.4535511 0.2631810 0.9319915 0.35800765
[3,] 0.53541554 0.9646692 0.5856587 0.6115715 0.33092957
[4,] 0.52836800 0.4141150 0.3830334 0.4947907 0.05568016
> dim(x) # xの行と列の情報を調べる
[1] 4 5
> dim(x)[1] # xの行数を表示
[1] 4
> dim(x)[2] # xの列数を表示
[1] 5
http://www.is.titech.ac.jp/~mase/Rtips.html#item2
http://joker.hatenablog.com/entry/20110410/1302391668
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 0.2849401 0.87684443 0.02844246 0.5394180 0.36615681
[2,] 0.3301715 0.09579336 0.61150386 0.6823147 0.74778217
[3,] 0.8273795 0.22615717 0.59909658 0.7701186 0.04878373
[4,] 0.9898318 0.71143105 0.95935694 0.5836727 0.63342126
> y<-as.numeric(x[1:dim(x)[1]]) # 1列目をベクトルとして取り出す
> y
[1] 0.2849401 0.3301715 0.8273795 0.9898318
> y<-as.numeric(x[1:dim(x)[1],1]) # 1列目をベクトルとして取り出す
> y
[1] 0.2849401 0.3301715 0.8273795 0.9898318
> y<-as.numeric(x[1:dim(x)[1],3]) # 3列目をベクトルとして取り出す
> y
[1] 0.02844246 0.61150386 0.59909658 0.95935694
> y<-as.numeric(x[2,1:dim(x)[2]]) # 2行目をベクトルとして取り出す
> y
[1] 0.33017152 0.09579336 0.61150386 0.68231470 0.74778217
参考 dim()
> x <- matrix(runif(5*4),ncol=5,nrow=4)
> x
[,1] [,2] [,3] [,4] [,5]
[1,] 0.48979355 0.7012950 0.0197624 0.5450226 0.75162774
[2,] 0.04856294 0.4535511 0.2631810 0.9319915 0.35800765
[3,] 0.53541554 0.9646692 0.5856587 0.6115715 0.33092957
[4,] 0.52836800 0.4141150 0.3830334 0.4947907 0.05568016
> dim(x) # xの行と列の情報を調べる
[1] 4 5
> dim(x)[1] # xの行数を表示
[1] 4
> dim(x)[2] # xの列数を表示
[1] 5
http://www.is.titech.ac.jp/~mase/Rtips.html#item2
データフレームの場合http://joker.hatenablog.com/entry/20110410/1302391668
2013年1月27日日曜日
Rで大量の変数を自動的に生成する方法
> for (i in 1:5 ) {
+ eval( parse( text = paste( "x",i,"<-matrix(1:6,nrow=2,ncol=3,byrow=T)", sep="" ) ) )
+ }
>
> x1
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> x5
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
http://d.hatena.ne.jp/koiti_yano/20070930/p2
+ eval( parse( text = paste( "x",i,"<-matrix(1:6,nrow=2,ncol=3,byrow=T)", sep="" ) ) )
+ }
>
> x1
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> x5
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
http://d.hatena.ne.jp/koiti_yano/20070930/p2
Rで行列をベクトルに変換
> x<-matrix(1:6,nrow=2,ncol=3,byrow=T)
> x
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> dim(x)<-c(6,1)
> x
[,1]
[1,] 1
[2,] 4
[3,] 2
[4,] 5
[5,] 3
[6,] 6
http://d.hatena.ne.jp/foo22222/20110503/1303206272
> x
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> dim(x)<-c(6,1)
> x
[,1]
[1,] 1
[2,] 4
[3,] 2
[4,] 5
[5,] 3
[6,] 6
http://d.hatena.ne.jp/foo22222/20110503/1303206272
2013年1月26日土曜日
Rでmatファイルの読み書き
インストール
install.packages("R.matlab")
使う前に
require("R.matlab")
読み
x <- readMat('Name.mat')
書き
writeMat('Name.mat')
http://rikeracy.web.fc2.com/r/matread/matread.html
install.packages("R.matlab")
使う前に
require("R.matlab")
読み
x <- readMat('Name.mat')
書き
writeMat('Name.mat')
http://rikeracy.web.fc2.com/r/matread/matread.html
Rで簡単な関数の描画
# housekeeping
rm(list=ls(all=TRUE))
# Weibull PDF
fw <- function (x) {
( k / lambda ) * ( x / lambda ) ^ ( k -1 ) * exp( - ( x / lambda ) ^ k )
}
k <- 1
lambda <- 1
plot ( fw , 0 , 3 , ylim = c( 0 , 1.5 ) , main = "Weibull PDF")
k <- 2
lambda <- 1
par ( new = T )
plot ( fw, 0 , 3 , ylim = c( 0 , 1.5 ) , col = "red" )
k <- 3
lambda <- 1
par ( new = T )
plot ( fw, 0 , 3 , ylim = c( 0 , 1.5 ) , col = "blue" )
k <- 1
lambda <- 2
par ( new = T )
plot ( fw , 0 , 3 , ylim = c( 0 , 1.5 ) , lty = 2 )
k <- 2
lambda <- 2
par ( new = T )
plot ( fw, 0 , 3 , ylim = c( 0 , 1.5 ) , col = "red" , lty = 2 )
k <- 3
lambda <- 2
par ( new = T )
plot ( fw, 0 , 3 , ylim = c( 0 , 1.5 ) , col = "blue" , lty = 2 )
labels <- c( "k=1, lambda=1", "k=2, lambda=1", "k=3, lambda=1", "k=1, lambda=2", "k=2, lambda=2" , "k=3, lambda=2")
cols <- c( "black", "red", "blue", "black", "red", "blue")
ltys <- c( 1, 1, 1, 2, 2, 2)
legend( 2 , 1.5 , legend = labels , col = cols, lty = ltys )
dev.copy2eps(file = "WeibullPDF.eps", width = 8)
dev.copy2pdf(file = "WeibullPDF.pdf", width = 8)
# Weibull CDF
Fw <- function (x) {
1 - exp( - ( x / lambda ) ^ k )
}
dev.set (1)
k <- 1
lambda <- 1
plot ( Fw , 0 , 3 , ylim = c( 0 , 1 ) , main = "Weibull CDF")
k <- 2
lambda <- 1
par ( new = T )
plot ( Fw, 0 , 3 , ylim = c( 0 , 1 ) , col = "red" )
k <- 3
lambda <- 1
par ( new = T )
plot ( Fw, 0 , 3 , ylim = c( 0 , 1 ) , col = "blue" )
k <- 1
lambda <- 2
par ( new = T )
plot ( Fw , 0 , 3 , ylim = c( 0 , 1 ) , lty = 2 )
k <- 2
lambda <- 2
par ( new = T )
plot ( Fw, 0 , 3 , ylim = c( 0 , 1 ) , col = "red" , lty = 2 )
k <- 3
lambda <- 2
par ( new = T )
plot ( Fw, 0 , 3 , ylim = c( 0 , 1 ) , col = "blue" , lty = 2 )
legend( 2 , 0.3 , legend = labels , col = cols, lty = ltys )
dev.copy2eps(file = "WeibullCDF.eps", width = 8)
dev.copy2pdf(file = "WeibullCDF.pdf", width = 8)
参考
http://r.livedocs.net/graph/legend.html
http://en.wikipedia.org/wiki/Weibull_distribution
登録:
投稿 (Atom)