2010年10月14日木曜日

Rcode_20101014

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
記事「生産年齢人口が減るとデフレになる?」に使用したRのコードです。



#作業ディレクトリ設定
setwd('c:/R')
#csvデータ読み込み
x<-read.csv('wbkdata.csv')

#データから各数値抜き出し
#*データ抜き出しの後、1行目消去
money<-x[x[,3]==x[1,3],]
#行数ダミー
dum_1<-nrow(money)
money<-money[c(2:dum_1),]
popgrow<-x[x[,3]==x[(1+11*2),3],]
popgrow<-popgrow[c(2:dum_1),]
cpi<-x[x[,3]==x[(1+11*3),3],]
cpi<-cpi[c(2:dum_1),]
deflator<-x[x[,3]==x[(1+11*4),3],]
deflator<-deflator[c(2:dum_1),]

pop_15_64<-x[x[,3]==x[11+1,3],]
#pop_15_64は前年との差分をとった後、1行目消去
pop_15_64_buf<-pop_15_64-pop_15_64[c(1,1:(nrow(pop_15_64)-1)),]
pop_15_64<-pop_15_64_buf[c(2:dum_1),]

#平均値(ジンバブエ除く)
money_mean<-mean(money,na.rm='true')[c(4:(ncol(x)-1))]
popgrow_mean<-mean(popgrow,na.rm='true')[c(4:(ncol(x)-1))]
cpi_mean<-mean(cpi,na.rm='true')[c(4:(ncol(x)-1))]
deflator_mean<-mean(deflator,na.rm='true')[c(4:(ncol(x)-1))]
pop_15_64_mean<-mean(pop_15_64,na.rm='true')[c(4:(ncol(x)-1))]

#データの結合
data_all<-cbind(money_mean,popgrow_mean,pop_15_64_mean,cpi_mean,deflator_mean)
#欠損値がある行を削除(cor動作のため)
data_all_1<-na.omit(data_all)
#output.csvへ書き出し
write.table(data_all_1, "output.csv", sep=",",quote=F,col.names=T)
#ピアソンの積率相関係数
cor_pe<-cor(data_all_1,method="pearson")
cor_pe
#スピアマンの順位相関係数
cor_sp<-cor(data_all_1,method="spearman")
cor_sp
#html出力(xtableパッケージ使用)
#無い場合は install.packages("xtable") でインストール
library(xtable)
a<-xtable(cor_pe)
#出力先を"pearson.html"へ
sink("pearson.html")
#出力
print(a,"html")
#出力先を戻す
sink()
sink("spearman.html")
b<-xtable(cor_sp)
print(b,"html")
sink()

#散布図を表示
plot(money_mean,cpi_mean,xlab="マネー(M2)増加率",ylab="インフレ率(消費者物価)")
grid()
plot(popgrow_mean,cpi_mean,xlab="人口増加率",ylab="インフレ率(消費者物価)")
grid()
plot(pop_15_64_mean,cpi_mean,xlab="15_64歳人口比率(%)の対前年差",ylab="インフレ率(消費者物価)")
grid()
#全ペアの散布図を表示
pairs(data_all_1)

0 件のコメント:

コメントを投稿