R システムの CRAN の URL: https://cran.r-project.org/
Book1.csv をダウンロード (参考: 「外国為替データ(時系列データ)の情報源の紹介」の Web ページ)
以下の説明では、
として説明を続ける.
* 自前の CSV ファイルを使うときの注意: read.table() 関数を使うので, 属性名は英語になっていること.属性名は,CSV ファイルの第一行目に書いていること.
属性名が CSV ファイルの1行目に書かれていることを確認する.
次のコマンドを実行.
◆ Windows での動作手順例
X <- read.table("C:/R/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE);
◆ Linux での動作手順例
X <- read.table("/tmp/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE);
R の read.table のオプション
次のコマンドを実行.
edit(X);
次のコマンドを実行.
str(X)
最小値,中央値,平均値,最大値などを表示
summary(X)
平均値,標準偏差などを表示
numSummary( X[,c("USD", "EUR", "AUD")], statistics=c("mean", "sd", "quantiles"), quantiles=c( 0,.25,.5,.75,1 ))
要点: 横軸が seq, 縦軸が USD
scatterplot( USD~seq, reg.line=lm, smooth=TRUE, boxplots=FALSE, span=0.5, data=X )
library(ggplot2) p <- ggplot(X) p + geom_point( aes(x = seq, y = USD), shape=1) + stat_smooth( aes(x = seq, y = USD) )
要点: 横軸が seq, 縦軸が USD.分布の平均と分散も図示
scatterplot( USD~seq, reg.line=lm, smooth=TRUE, boxplots='xy', span=0.5, data=X )
scatterplot.matrix( ~seq+USD+EUR+AUD, reg.line=lm, smooth=TRUE, span=0.5, diagonal = 'density', data=X )
reliability( cov(X[,c("USD","EUR","AUD")], use="complete.obs") )
* ここでは Book1.csv をダウンロードし,分かりやすいディレクトリに置く
(参考: 「外国為替データ(時系列データ)の情報源の紹介」の Web ページ)
以下の説明では、
として説明を続ける.
* 自前の CSV ファイルを使うときの注意: read.table() 関数を使うので, 属性名は英語になっていること.属性名は,CSV ファイルの第一行目に書いていること.
属性名が CSV ファイルの1行目に書かれていることを確認する.
次のコマンドを実行.
◆ Windows での動作手順例
X <- read.table("C:/R/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE);
◆ Linux での動作手順例
X <- read.table("/tmp/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE);
オプション
次のコマンドを実行.
edit(X);
次のコマンドを実行.
str(X)
x 値を格納したベクトル,y 値を格納したベクトルを引数として plot() 関数を使うと,散布図が描かれます.
この場合「X[,c("属性名")]」のような書き方で,X から列を抜き出して,ベクトルを作る.
* Iris データセットの散布図の例
plot( iris[,1], iris[,2], col=iris[,5] )
library(ggplot2) p <- ggplot(iris) p + geom_point( aes(x = iris[,1], y = iris[,2], colour = iris[,5]) ) + scale_colour_hue()
* 外国為替データ(時系列データ) Book1.csv の散布図の例
plot( X[,c("seq")], X[,c("USD")] )
library(ggplot2) p <- ggplot(X) p + geom_point( aes(x = seq, y = USD) )
plot( X[,c("USD")], X[,c("EUR")] )
library(ggplot2) p <- ggplot(X) p + geom_point( aes(x = USD, y = EUR) )
points() 関数や line() 関数 や legend() 関数や text() 関数を使って,簡単に重ね書きできる.例を示しておきます. 次のような感じになります(文法の詳細には立ち入りません).
* 平滑化の関数は,他にも,smooth.spline(), ksmooth(), supsmu() などが知られている.
lines() 関数は,線を重ね書きするもの.
* 外国為替データ(時系列データ) Book1.csv の例
plot( X[,c("seq")], X[,c("USD")] ) lines(lowess( X[,c("seq")], X[,c("USD")] ), col = "red") lines(lowess( X[,c("seq")], X[,c("USD")], f=0.2 ), col = "green")
メソッドについての説明は,次の公式ページにある. https://rdocumentation.org/packages/ggplot2/versions/3.3.5
library(ggplot2) p <- ggplot(X) p + geom_point( aes(x = seq, y = USD) ) + stat_smooth( aes(x = seq, y = USD), method="loess" )
library(ggplot2) p <- ggplot(X) p + geom_point( aes(x = seq, y = USD) ) + stat_smooth( aes(x = seq, y = USD), method="loess" )
「par(new=T)」によりグラフの重ね書きを指示
* 外国為替データ(時系列データ) Book1.csv の例
plot( X[,c("seq")], X[,c("USD")] ) par(new = T) plot( X[,c("seq")], X[,c("EUR")], pch=0, col=2 )
library(ggplot2) p <- ggplot(X) p <- p + geom_point( aes(x = seq, y = USD), shape=0 ) p <- p + geom_point( aes(x = seq, y = EUR), shape=1, colour="red" ) p
legend() 関数では,次を指定する.
【関連する外部ページ】: http://www.okada.jp.org/RWiki/?%A5%B0%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF%A5%B9%BB%B2%B9%CD%BC%C2%CE%E3%BD%B8%A1%A7%CB%DE%CE%E3 (現存しない)
グラフィックス参考実例集:凡例 (http://www.okada.jp.org/RWiki/?%A5%B0%A5%E9%A5%D5%A5%A3%A5%C3%A5%AF%A5%B9%BB%B2%B9%CD%BC%C2%CE%E3%BD%B8%A1%A7%CB%DE%CE%E3)
plot( X[,c("seq")], X[,c("USD")] ) lines(lowess( X[,c("seq")], X[,c("USD")] ), col = "red") lines(lowess( X[,c("seq")], X[,c("USD")], f=0.2 ), col = "green") legend( 5, 105, c( "f = 2/3", "f = 0.2" ), lty = 1, col = c("red", "green") )
テキストを書くこともできる.
text(locator(1), labels = "ほげほげ")
など.
詳細は「help(Devices)」で確認できる
例えば,PNG ファイルを作りたいときは,最初に「png()」を実行.最後に「dev.off()」で,ファイルを閉じる. すると,作業ディレクトリにファイルができる.作業ディレクトリは,getwd() で分かる.
* png( file="C:\1.png" ) のように,ファイル名を陽に指定する方が分かりやすいでしょう.
◆ Windows での実行手順例 (png ファイルを作成している)
X <- read.table("C:/R/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE); png("1.png") plot( X[,c("seq")], X[,c("USD")] ) dev.off() getwd()
X <- read.table("C:/R/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE); png("1.png") library(ggplot2) p <- ggplot(X) p + geom_point( aes(x = seq, y = USD) ) dev.off() getwd()
◆ Ubuntu での実行手順例 (png ファイルを作成している)
X <- read.table("/tmp/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE); png("1.png") plot( X[,c("seq")], X[,c("USD")] ) dev.off() getwd()
X <- read.table("/tmp/Book1.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE); png("1.png") library(ggplot2) p <- ggplot(X) p + geom_point( aes(x = seq, y = USD) ) dev.off() getwd()
グラフの作成には R コマンダーが便利です
library(Rcmdr) library(RcmdrPlugin.KMggplot2)
* このときエラーが出た場合には, 「install.packages("Rcmdr")」, 「install.packages("RcmdrPlugin.KMggplot2")」, のように インストール操作を行うと解決する場合がある
x軸, y軸などの設定を行い 「OK」をクリックすると、散布図が得られる.
x軸, y軸などの設定を行い 「OK」をクリックすると、散布図が得られる.