2688868 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

One of my favorite things is ...

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2019.10.01
XML
テーマ:天気の話!(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) | コメントを書く


PR

Recent Posts

Free Space







Rebatesお友達紹介キャンペーン

​​​​

Category

Archives

Comments

digital_21@ Re[1]:◆【新型コロナ】やっぱり、PCR検査(08/02) 背番号のないエース0829さんへ すてきな内…
背番号のないエース0829@ Re:◆【新型コロナ】やっぱり、PCR検査 「日本一遅い成人式が、無事終了 !!」に、…

Keyword Search

▼キーワード検索

Rakuten Card


© Rakuten Group, Inc.