テーマ:天気の話!(1666)
カテゴリ:データ分析
気象庁のサイトに「世界の月平均気温偏差(℃)」というデータがあります。これは、各月の平均気温の、基準値との差を示すものです。基準値は「1981〜2010年の30年平均値(℃)」です。 地球温暖化を示す基礎的なデータの一つのようです。
世界の2019年8月の月平均気温偏差(℃)は、「1981〜2010年の30年平均値」に対して「+0.42℃」(速報値)で、過去3番目の値を記録しました。 2019年の6月と7月は過去最高でしたので、夏(6月~8月)というくくりでは、2019年の夏が過去最高の暑さということになりました。 結局、世界的に今年の夏は暑かった、ということのようです。 グラフなどの詳細は、こちらの記事にあります。(「Blogger」での記事です) ☆関連記事・おすすめの記事 ◆「R Markdown」で作成したページです:世界の平均気温偏差(℃)の時系列推移:グラフをたくさん作成してみました(「Blogger」での記事です) <付録:データ処理の「Rコード」例> 「Rコード」でデータ処理をする場合のコードの例です。 以下の「Rコード」で工夫が必要だった点は、「季節平均値」の処理方法です。「冬」の場合、「12月、1月、2月」の3カ月平均ということになりますが、年をまたぐので行列形式で処理するためには、少し工夫が必要でした。 例えば、2019年1月、2月と2018年12月の3カ月の平均値を「2019年の冬の平均値」とするためには、「2019年の冬」用に一行下にシフトした12月のデータが必要になります。 そこで、「年」が行、「月」が列の形式のデータにおいて、季節の平均値用に「12月」の列を一行下方向にずらした「前年の12月」の列を追加しました。 つまり、「mutate_at(c("Pre_12月"),funs(lag),n=1)」の処理によって、2019年1月、2月のデータの行に2018年12月のデータ(「Pre_12月」のデータ)を配置して、行方向の計算で「冬」の3カ月平均値の列を作成できるようにしました。 この場合、最初の1891年の「冬」は前年の12月のデータが無いのでNAになります。 1月 2月 ・・・ その年の12月 前年の12月 冬 2017年 2018年 2019年 X Y Z (X+Y+Z)/3 「冬」の定義が「1月、2月、3月」だったら、このような余計なことをしなくて済むのにと思います。 「夏」の定義は、「6月、7月、8月」ですが、月別平均気温は「6月」よりも「9月」の方が高いので、「7月、8月、9月」といった「夏」の定義も間違いではないような気もします。そうすれば、年をまたぐ処理をしなくて済みます。 Excelのシートでの処理であれば、思いつくままにコピペなどでデータを加工してしまいますが、そのやり方では、処理を繰り返す際に間違ったり、処理の漏れがあったりして、結果が不安定になったりします。 「Rコード」や「パワークエリ」で処理を行うようにすれば、処理を繰り返す場合も同様の処理を確実に再現できます。 「Rコード」や「パワークエリ」は、まさに、データ分析における「RPA(ロボティック・プロセス・オートメーション)」のツールだと思います。 ---------------------------------------------------------------- library(XML) library(rvest) library(tidyverse) library(ggplot2) url <- "http://www.data.jma.go.jp/cpdinfo/temp/list/mon_wld.html" df_wtemp <- readHTMLTable(url,header = TRUE,stringsAsFactors = FALSE) write.csv(df_wtemp,"worldtemp.csv",fileEncoding = "UTF8") df_wtemp <- read_csv("worldtemp.csv",skip=1,col_names = c("ID","year", "M_01月","M_02月", "M_03月", "M_04月","M_05月", "M_06月", "M_07月","M_08月", "M_09月", "M_10月","M_11月", "M_12月")) df_wtemp <- as.data.frame(df_wtemp) df_wtemp$year_n <- str_replace_all(df_wtemp$year,"年","") df_wtemp$year_n <- as.integer(df_wtemp$year_n) df_wtemp[order(df_wtemp$year_n),] df_wtemp$Pre_12月 <- df_wtemp$M_12月 df_wtemp <- df_wtemp %>% mutate_at(c("Pre_12月"),funs(lag),n=1) df_wtemp <- df_wtemp %>% mutate(Spring = rowMeans(select(.,"M_03月":"M_05月"))) df_wtemp <- df_wtemp %>% mutate(Summer = rowMeans(select(.,"M_06月":"M_08月"))) df_wtemp <- df_wtemp %>% mutate(Autumn = rowMeans(select(.,"M_09月":"M_11月"))) df_wtemp <- df_wtemp %>% mutate(Winter = rowMeans(select(.,"Pre_12月","M_01月","M_02月"))) ggplot(df_wtemp,aes(x=year_n,y=M_08月)) + geom_line(color="red") + xlim(1980,2019) + labs(x="year",y="世界の月別平均気温偏差(℃)",title="8月") ggplot(df_wtemp)+geom_line(aes(x=year_n,y=Spring),color="red") + xlim(1980,2019) +labs(x="year",y="世界の月別平均気温偏差(℃)",title="Spring(3~5月)") ggplot(df_wtemp)+geom_line(aes(x=year_n,y=Summer),color="red") + xlim(1980,2019) +labs(x="year",y="世界の月別平均気温偏差(℃)",title="Summer(6~8月)") ggplot(df_wtemp)+geom_line(aes(x=year_n,y=Autumn),color="red") + xlim(1980,2019) +labs(x="year",y="世界の月別平均気温偏差(℃)",title="Autumn(9~11月)") ggplot(df_wtemp)+geom_line(aes(x=year_n,y=Winter),color="red") + xlim(1980,2019) +labs(x="year",y="世界の月別平均気温偏差(℃)",title="Winter(12~2月)") df_wtemptidy <- df_wtemp %>% gather(key=month,tempr,3:14,-year_n) df_wtemptidy <- as.data.frame(df_wtemptidy) ggplot(df_wtemptidy)+geom_line(aes(x=year_n,y=tempr),color="red") + xlim(1980,2019) + facet_wrap(~month)+labs(x="year",y="世界の月別平均気温偏差(℃)") df_wtemptidy8 <- df_wtemptidy %>% filter(month == "M_08月") ggplot(df_wtemptidy8)+geom_line(aes(x=year_n,y=tempr),color="red") + xlim(1980,2019)+labs(x="year",y="世界の月別平均気温偏差(℃)",title="8月") df_wtemptidy <- df_wtemp %>% gather(key=season,temprs,17:20,-year_n) ggplot(df_wtemptidy)+geom_line(aes(x=year_n,y=temprs),color="red") + xlim(1980,2019) + facet_wrap(~season)+labs(x="year",y="世界の月別平均気温偏差(℃)",title="Seasons") df_wtemptidys <- df_wtemptidy %>% filter(season == "Summer") ggplot(df_wtemptidys)+geom_line(aes(x=year_n,y=temprs),color="red") + xlim(1980,2019)+labs(x="year",y="世界の月別平均気温偏差(℃)",title="Summer(6~8月)") ---------------------------------------------------------------- お気に入りの記事を「いいね!」で応援しよう
Last updated
2019.11.10 08:08:18
コメント(0) | コメントを書く
[データ分析] カテゴリの最新記事
|
|