Contenu connexe Similaire à 120620 chred r_presentation2 Similaire à 120620 chred r_presentation2 (20) Plus de Takayuki Nuimura (20) 120620 chred r_presentation21. R の基本操作
統計解析
時系列データの解析
全球気象データ (NetCDF) の処理
初心者向け R 講座
縫村崇行
(NUIMURA, Takayuki)
環境学・雪氷研究室
R 勉強会 (CHERD)
2012/06/20
T. Nuimura 初心者向け R 講座
2. R の基本操作
統計解析
時系列データの解析
全球気象データ (NetCDF) の処理
Outline
1 R の基本操作
コマンドの入力
グラフ作成
外部データの入出力
2 統計解析
統計処理
検定
3 時系列データの解析
4 全球気象データ (NetCDF) の処理
特定地域の解析
全球での解析
世界地図と相関結果のプロット
T. Nuimura 初心者向け R 講座
3. R の基本操作
統計解析
時系列データの解析
全球気象データ (NetCDF) の処理
R の作図例
T. Nuimura 初心者向け R 講座
4. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
R の起動と終了
R の起動
Windows:プログラムメニューから R を選択
Linux:ターミナルで R と入力 (大文字なのに注意)
R の終了コマンド
> q()
# ワークスペースの保存についての質問は No で OK
T. Nuimura 初心者向け R 講座
5. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
数値入力と変数
数値の計算
>2+3
[1] 5
>2ˆ8
[1] 256
変数
> temp.dc <- 10
> temp.dc
[1] 10
> temp.df <- 9 / 5 * temp.dc + 32
> temp.df
[1] 50
T. Nuimura 初心者向け R 講座
6. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
グラフの基礎 (plot 関数)
1 変数のプロット
> temp <- c(10, 20, 15, 25, 20, 20)
> plot(temp)
25
20
temp
15
10
1 2 3 4 5 6
Index
T. Nuimura 初心者向け R 講座
7. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
グラフの基礎 (plot 関数)
2 変数のプロット
> year <- c(2000, 2004, 2005, 2007, 2010, 2011)
> plot(year, temp)
25
20
temp
15
10
2000 2002 2004 2006 2008 2010
year
T. Nuimura 初心者向け R 講座
8. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
グラフの基礎 (plot 関数)
2 変数のプロット
> year <- c(2000, 2004, 2005, 2007, 2010, 2011)
> plot(year, temp, type=“l”, col=“red”, xlim=c(1990, 2020),
ylim=c(0, 30))
30
25
20
temp
15
10
5
0
1990 1995 2000 2005 2010 2015 2020
year
T. Nuimura 初心者向け R 講座
9. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
グラフの基礎 (histogram 関数)
ヒストグラムの作成
> hist(temp)
Histogram of temp
3.0
2.5
2.0
Frequency
1.5
1.0
0.5
0.0
10 15 20 25
temp
T. Nuimura 初心者向け R 講座
10. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
グラフの基礎 (histogram 関数)
大量のデータのヒストグラム
> hist(rnorm(10000))
Histogram of rnorm(10000)
1500
Frequency
1000
500
0
−4 −2 0 2 4
rnorm(10000)
T. Nuimura 初心者向け R 講座
11. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
グラフの基礎 (histogram 関数)
大量のデータのヒストグラム
> hist(rnorm(10000), col=“lightblue”, breaks=100)
Histogram of rnorm(10000)
400
300
Frequency
200
100
0
−2 0 2 4
rnorm(10000)
T. Nuimura 初心者向け R 講座
12. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
R で取り扱えるデータ
一般的なデータだと
xls:csv に変換しといたほうが簡単
csv:簡単に読み込める
txt:csv 以外の文字(タブ、スペースなど)区切りデータ
dbf:GIS の属性テーブル情報を扱いたいときなど
画像データ:画像処理も
科学関連のデータでは
GeoTiff:リモセンデータ
Shapefile:GIS データ
NetCDF:気候データで一般的
T. Nuimura 初心者向け R 講座
13. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
CSV データ読み込み
データのある場所に移動
# Windows: C ドライブの r_lecture フォルダの場合
> setwd(“C:/r_lecture”)
# Ubuntu: /home/username/r_lecture フォルダの場合
> setwd(“/home/username/r_lecture”)
read.csv 関数
# 月平均気温 (2001–2010) のデータ、
> temp <- read.csv(“nagoya_temp.csv”)
T. Nuimura 初心者向け R 講座
14. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
CSV データ加工
matrix 関数で 2 次元配列に変換
> temp.matrix <- matrix(temp[,2], 10, 12, byrow=T)
# dim 関数で次元数のチェ ック
> dim(temp.matrix)
[1] 10 12
T. Nuimura 初心者向け R 講座
15. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
CSV データ出力
2 次元配列の列と行にラベルをつける
# 列ラベルに月
> colnames(temp.matrix) <- 1:12
# 行ラベルに年
> rownames(temp.matrix) <- 2001:2010
2 次元配列を CSV に出力
> write.csv(temp.matrix, “temp_matrix.csv”)
T. Nuimura 初心者向け R 講座
16. R の基本操作
コマンドの入力
統計解析
グラフ作成
時系列データの解析
外部データの入出力
全球気象データ (NetCDF) の処理
NetCDF データ読み込み
RNetCDF パッケージ
# パッケージの読み込み
> library(RNetCDF)
# 今回使用するデータは 5◦ グリッド、
# 1850 Jan.–2011 Oct. の月別気温偏差
> nc <- open.nc(“CRUTEM3.nc”)
> nc.data <- var.get.nc(nc, “temp”)
# dim 関数で次元数のチェック
> dim(nc.data)
[1] 72 36 1942
※次元数はそれぞれ、経度方向 (W180⇒E180)、緯度方向
(S90⇒N90)、時間 (1850 年から 160 年間 ×12 + 10)
T. Nuimura 初心者向け R 講座
17. R の基本操作
統計解析 統計処理
時系列データの解析 検定
全球気象データ (NetCDF) の処理
2 次元配列の計算
apply 関数で縦・横それぞれの計算
# 横方向、つまり年別の平均
> apply(temp.matrix, 1, mean)
# 縦方向、つまり月別の平均
> apply(temp.matrix, 2, mean)
mean 以外にも、sum、max、min、sd、summary なども。
T. Nuimura 初心者向け R 講座
18. R の基本操作
統計解析 統計処理
時系列データの解析 検定
全球気象データ (NetCDF) の処理
t 検定
t.test 関数
# 2001 年と 2010 年の気温差を検定
> t.test(temp.matrix[1,], temp.matrix[10,])
t = -0.1723, df = 22, p-value < 0.8648
# 2001 年と 2010 年では有意な気温差なし
# 2001–2010 の 1 月と 2 月の気温差を検定
> t.test(temp.matrix[,1], temp.matrix[,2])
t = -3.1955, df = 15.935, p-value < 0.005654
# 1 月と 2 月では有意な気温差あり
T. Nuimura 初心者向け R 講座
19. R の基本操作
統計解析 統計処理
時系列データの解析 検定
全球気象データ (NetCDF) の処理
無相関検定
cor.test 関数
# 2001 年と 2010 年の気温の相関
> cor.test(temp.matrix[1,], temp.matrix[10,])
t = 22.804, df = 10, p-value < 5.93e-10
cor 0.9905215
# 相関係数 0.99 の有意な相関
T. Nuimura 初心者向け R 講座
20. R の基本操作
統計解析
時系列データの解析
全球気象データ (NetCDF) の処理
時系列データの解析の章は保科さんが担当します。
内容
時系列データプロット Download
移動平均 Download
最小二乗法で線形回帰 Download
周波数解析 Download
T. Nuimura 初心者向け R 講座
21. R の基本操作
特定地域の解析
統計解析
全球での解析
時系列データの解析
世界地図と相関結果のプロット
全球気象データ (NetCDF) の処理
任意の地域のデータの取り出し
多次元配列データの取り出し方
# 2 次元配列の場合
# temp.matrix から 2003–2006 を抽出
> temp.matrix[3:6,]
# 加えて、6–9 月を抽出
> temp.matrix[3:6, 6:9]
3 次元配列 (x, y, time) から、指定領域・期間を抽出するには、
matrix[x 範囲, y 範囲, time 範囲]
T. Nuimura 初心者向け R 講座
22. R の基本操作
特定地域の解析
統計解析
全球での解析
時系列データの解析
世界地図と相関結果のプロット
全球気象データ (NetCDF) の処理
meanRange.r スクリプトについて
配布した meanRange.r スクリプトでは
1 抽出する、緯度経度範囲、期間 (1850–2011) の間で指定
2 緯度、経度、年を配列番号に換算
3 NetCDF データから指定範囲・期間を抽出
4 指定範囲内の JJAS 平均を計算
5 計算結果を出力
Download
T. Nuimura 初心者向け R 講座
23. R の基本操作
特定地域の解析
統計解析
全球での解析
時系列データの解析
世界地図と相関結果のプロット
全球気象データ (NetCDF) の処理
年輪データと全球グリッドの相関
配布した corGlobal.r スクリプトでは
1 解析する期間 (1850–2011) の間で指定
2 年を配列番号に換算
3 NetCDF データから指定期間を抽出
4 指定範囲内の JJAS 平均を計算
5 年輪データ (CSV) 読み込み
6 グリッドごとに相関を計算
7 計算結果を出力
Download
T. Nuimura 初心者向け R 講座
24. R の基本操作
特定地域の解析
統計解析
全球での解析
時系列データの解析
世界地図と相関結果のプロット
全球気象データ (NetCDF) の処理
世界地図と相関結果のプロット
50
0
−50
−150 −100 −50 0 50 100 150
T. Nuimura 初心者向け R 講座