Translate

ラベル データ前処理 の投稿を表示しています。 すべての投稿を表示
ラベル データ前処理 の投稿を表示しています。 すべての投稿を表示

2020年7月1日水曜日

◆【新型コロナ】ECDCのデータから国別の実効再生産数を計算するRのコード例です

ECDCが公開している新型コロナウイルスの感染確認者数のデータを使って、各国の実効再生産数を計算するコードの例です。

日付のデータを付加するために、コードが長くなっていますが、日付データを付加しなければもっとシンプルにすることができます。

古いノートパソコンを使っていますが、約200カ国の実効再生産数を十数秒程度で計算することができます。

計算で得られたデータは、ダッシュボードで利用しています。

なお、実効再生産数の計算には、「Improved inference of time-varying reproduction numbers during infectious disease outbreaks」という論文で紹介されているRのパッケージ「EpiEstim」を利用しています。

なお、発症間隔のパラメータは、平均を4.8、標準偏差を2.3に設定しています。


【Rコードの例】
library(EpiEstim)

df_ECDC <- read.csv("https://opendata.ecdc.europa.eu/covid19/casedistribution/csv", na.strings = "", fileEncoding = "UTF-8-BOM",stringsAsFactors = FALSE)

geo_list <- unique(df_ECDC$countriesAndTerritories)
df_ECDCtemp <- df_ECDC
df_ECDCtemp1 <- NULL
df_ECDCtemp2 <- NULL
  temp_R <- NULL
  temp_Rt <- NULL
  temp_Date <- NULL
  temp_Case <- NULL
  temp_DC <- NULL
  df_DC <- NULL
  df_Rt <- NULL
  temp_notcal <- NULL
  df_notcal <- NULL


###繰り返しの処理で、多くの国の計算を行います。

for (i in seq_along(geo_list))
 {
 df_ECDCtemp1 <- subset(df_ECDCtemp,df_ECDCtemp$countriesAndTerritories==geo_list[i])
 df_ECDCtemp2 <- subset(df_ECDCtemp1,df_ECDCtemp1$cases >= 0)
 if (length(df_ECDCtemp2$cases) >= 70)
 {rt_parametric_si <- estimate_R(df_ECDCtemp2$cases,method = "parametric_si",config = make_config(list(mean_si = 4.8,
        std_si = 2.3)))
  temp_R <- round(rt_parametric_si$R,2)
  temp_Rt <- mutate(temp_R,countriesAndTerritories=geo_list[i])
  Numa <- nrow(rt_parametric_si$R)
  temp_date <- as.data.frame(df_ECDCtemp1$Date)
  Numb <- nrow(temp_date)
  Numc <- Numb-Numa
  temp_date <- temp_date[-c(1:Numc),]
  temp_Rt <- mutate(temp_Rt,Days=seq(from=1,to=nrow(rt_parametric_si$R), by=1))
  temp_Rt <- mutate(temp_Rt,Date=temp_date)
  temp_Date1 <- matrix(rt_parametric_si$dates,ncol=1)
  colnames(temp_Date1) <- "Days"
  temp_Case <- matrix(rt_parametric_si$I,ncol=1)
  colnames(temp_Case) <- "Cases"
  temp_DC <- cbind(temp_Date1,temp_Case)
  temp_DC <- as.data.frame(temp_DC)
  temp_DC <- mutate(temp_DC,countriesAndTerritories=geo_list[i])
  df_DC <- rbind(df_DC,temp_DC)
  df_Rt <- rbind(df_Rt,temp_Rt)}
  else {temp_notcal <- as.data.frame(geo_list[i])
  temp_notcal <- mutate(temp_notcal,Under70days=nrow(df_ECDCtemp1))
  colnames(temp_notcal) <- c("countriesAndTerritories","Under70days")
  df_notcal <- rbind(df_notcal,temp_notcal)
 }
}

###グラフで「1」の線を引くためのデータを追加します
Const <- c(rep(1,nrow(df_Rt)))
Const <- as.data.frame(Const)
colnames(Const) <- c("C")

df_Rt <- cbind(Const,df_Rt)

write.csv(df_Rt,"Rt.csv",fileEncoding = "UTF8")

          ------------------------------------------------------------------------------

 
------------------------------------------------------------------------------
-------------------------------------------------------------------

--------------------------------------------------------------------

2020年4月26日日曜日

◆​グーグルのデータポータルのダッシュボードの地図グラフで、国コード、州コードから国名、州名を表示させる方法

​グーグルのデータポータルのダッシュボードの地図グラフ(コロプレス地図・塗分け地図)で、国コードや州コードの表示を国名や州名の表示に変更できる「TOCOUNTRY」「TOREGION」の関数を利用してみました。

ECDCのデータを利用したダッシュボードでは、国別コードで国別の塗り分け地図グラフを作成していましたが、マウスオーバーした際の表示は国名ではなく国コードになっていました。

「TOCOUNTRY」の関数を利用すれば、国名を表示できるようになるというので、試してみました。

ダッシュボードで、「TOCOUNTRY(国コード)」の関数によって新しいフィールドを作成して、そのフィールドの属性を国コードに設定します。そして、そのフィールドを地図グラフの地域ディメンションに設定することで、マウスオーバーした際に国名を表示させることができるようになりました。

Examples
Formula Input Output
TOCOUNTRY(Country Code) PE Peru
TOCOUNTRY(Region ID, 'REGION_ISO_CODE') US-CA United States

同様に、ジョンズ・ホプキンス大学のデータを利用したダッシュボードの地図グラフでは、アメリカの州別の塗り分け地図で、州別コードが表示されていました。

「TOREGION(州コード)」の関数で、新しいフィールドを作成し、その属性を地域コードに設定します。そのフィールドを州別塗り分け地図グラフの地域ディメンションに設定すると、地図グラフで州名表示にすることができました。

Examples
Formula Input Output
TOREGION(Region ID, 'REGION_ISO_CODE') US-CA California

また、ジョンズ・ホプキンス大学のデータを利用したダッシュボードの地図グラフで、緯度・経度情報による郡別のデータを表示する地図グラフでは、「CONCAT(緯度・経度, "(",郡名, ")")」の関数で新しいフィールドを作成し、その属性を緯度・経度に設定します。そのフィールドを地図グラフの地域ディメンションに設定すると、地図グラフで郡名を表示することができました。

データポータルには、色々と、知らない機能があるので、少しずつダッシュボードを改善していきたいと思います。

 
------------------------------------------------------------------------------
-------------------------------------------------------------------

--------------------------------------------------------------------

2020年3月30日月曜日

◆【COVID-19】グーグルのデータポータルで「州の名前」がある列から「州のコード」(ISOコード)のフィールドを作成して、コロプレス地図を作成しました

グーグルのデータポータルを使って、新型コロナウイルスの感染者数の推移グラフなどのダッシュボードを作成しています。

「JHU CSSE」の「Covid19 Daily Reports」の新型コロナウイルスのデータの「Province.State」の列には、クルーズ船名など、州の名前以外のものが含まれているので、グーグルのダッシュボード「データポータル」でコロプレス地図を作成する際に、うまくいかない場合がありました。

そこで、データポータルで、州の名前のある列から、州のコード(ISOコード)のフィールドを新たに作成して、コロプレス地図を作成すると、正確なものができました。

データポータルのコロプレス地図の「地域ディメンション」のところで、「フィールド作成」を選択し、下記のスクリプトで「州コード」のフィールドを作成します。

なお、作成した「州コード」フィールドの属性は、「テキスト」ではなく「地域」にします。そうすることによって、「ズームエリア」の機能が利用できるようになるようです。

また、フィルタで、「Country」を「US」に絞り込みます。

データポータルの地図のページでは、「Province.State」のプルダウンメニューも設けていて、地図上での州の選択だけでなく、プルダウンメニューからも州を選択できるようにしています。

州を選択すると、州別の日ごとの推移グラフを作成できます。

↓データポータルで、「Province.State」の列にある州の名前から「州コード」のフィールドを作成するスクリプト。
-----------------------------------------------
CASE
when Province.State = "Alabama" then "US-AL"
when Province.State = "Alaska" then "US-AK"
when Province.State = "Arizona" then "US-AZ"
when Province.State = "Arkansas" then "US-AR"
when Province.State = "California" then "US-CA"
when Province.State = "Colorado" then "US-CO"
when Province.State = "Connecticut" then "US-CT"
when Province.State = "Delaware" then "US-DE"
when Province.State = "Florida" then "US-FL"
when Province.State = "Georgia" then "US-GA"
when Province.State = "Hawaii" then "US-HI"
when Province.State = "Idaho" then "US-ID"
when Province.State = "Illinois" then "US-IL"
when Province.State = "Indiana" then "US-IN"
when Province.State = "Iowa" then "US-IA"
when Province.State = "Kansas" then "US-KS"
when Province.State = "Kentucky" then "US-KY"
when Province.State = "Louisiana" then "US-LA"
when Province.State = "Maine" then "US-ME"
when Province.State = "Maryland" then "US-MD"
when Province.State = "Massachusetts" then "US-MA"
when Province.State = "Michigan" then "US-MI"
when Province.State = "Minnesota" then "US-MN"
when Province.State = "Mississippi" then "US-MS"
when Province.State = "Missouri" then "US-MO"
when Province.State = "Montana" then "US-MT"
when Province.State = "Nebraska" then "US-NE"
when Province.State = "Nevada" then "US-NV"
when Province.State = "New Hampshire" then "US-NH"
when Province.State = "New Jersey" then "US-NJ"
when Province.State = "New Mexico" then "US-NM"
when Province.State = "New York" then "US-NY"
when Province.State = "North Carolina" then "US-NC"
when Province.State = "North Dakota" then "US-ND"
when Province.State = "Ohio" then "US-OH"
when Province.State = "Oklahoma" then "US-OK"
when Province.State = "Oregon" then "US-OR"
when Province.State = "Pennsylvania" then "US-PA"
when Province.State = "Rhode Island" then "US-RI"
when Province.State = "South Carolina" then "US-SC"
when Province.State = "South Dakota" then "US-SD"
when Province.State = "Tennessee" then "US-TN"
when Province.State = "Texas" then "US-TX"
when Province.State = "Utah" then "US-UT"
when Province.State = "Vermont" then "US-VT"
when Province.State = "Virginia" then "US-VA"
when Province.State = "Washington" then "US-WA"
when Province.State = "West Virginia" then "US-WV"
when Province.State = "Wisconsin" then "US-WI"
when Province.State = "Wyoming" then "US-WY"
when Province.State = "District of Columbia" then "US-DC"
END
-----------------------------------------------
もちろん、元のデータにRコードで「州コード」の列を追加作成する方法もありますが、データポータルに新しいデータを反映させることを考えると、データポータルの上で新しいフィールドを作成した方が簡単なので、上記の方法を採用しました。

​​--------------------------------------------------------------------------
長さ調節可フィルターも入る2重構造!洗濯可立体仕様のケアマスク●先行受注●【メール便で送料無料】【メール便A】マスク 布マスク 男女兼用 日本製 国内生産 二重構造 フィルター効果 ユニセックス 洗える 洗濯可能 清潔 花粉症 保湿 コットン 綿

------------------------------------------------------------------------------
【もし、楽天市場で何か買い物をされる場合は、下記の楽天市場のバナーをクリックしてから、買い物をしていただけると、試作ダッシュボードの運営を支援していただくことになります】





------------------------------------------------------------------
 

-----------------------------------------------------------------------

------------------------------------------------------------------------
◆【COVID-19】国別、地域別の感染者数の推移を簡単に確認できる「DashBoard(ダッシュボード)」の試作です:新型コロナウイルスダッシュボード(Novel Coronavirus DashBoard)

2020年3月26日木曜日

◆【COVID-19】ダッシュボード用データの前処理の例:アメリカ合衆国(US)の地域別の変数を整備:正規表現「".*Key Word.*"」がカギでした

新型コロナウイルスの「感染者数」や死亡者数の推移を国・地域別に見ることができるダッシュボードのデータの前処理をして、アメリカの州別での推移をグラフ化できるようにしました。

◆【COVID-19】国別、地域別の感染者数の推移を簡単に確認できる「DashBoard(ダッシュボード)」の試作です:新型コロナウイルスダッシュボード(Novel Coronavirus DashBoard)

ダッシュボードのデータは、「JHU CSSE Covid19 Daily Reports」のデータを利用しています。1日に1度、データが追加されます。主にマップ用のデータで、緯度、経度の情報もあります。

先日、アメリカ国内の位置情報が詳しくなり、データの行数が大幅に増えたため、ダッシュボード用データの前処理方法を変更しました。そのついでに、アメリカの地域別データの整備を行いました。

アメリカのデータには、「Province.State」の列に、地域別のデータがあるのですが、3月9日までは、「New York County, NY」のように、「County,State」といった形のデータでした。それが、3月10日以降は、「State」という州別のデータに変わりました。

3月9日以前のデータも含めて、データの推移をグラフ化する場合は、過去の「County,State」を「State」に変換する必要があります。

ダッシュボード用のデータの前処理は、「R」を用いていて、下記のコードによって過去の「County,State」を「State」に変換しました。

「".*NY.*"」という正規表現の表記によって、「NY」という州の略号を含む文字列全体を「"New York"」に置き換えることができました。

正規表現は、具体例がないと本当にわかりにくいです。

最初は、置き換える対象を「”.NY”」などの表記にしていましたが、「NY」の部分だけが置き換えられて、うまくいきませんでした。

「".*NY.*"」とすることで、文字列全体を置き換えることができました。この表記の仕方の情報を見つけるのに時間がかかりました。

「ある文字列を含む文字列全体を置き換える」場合は、「​”.*指定する文字列.*”」とするといいようです。

【地域別変数の前処理のRコード】

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*NY.*", replacement="New York")

df_covadd$Province.State <-str_replace_all(df_covadd$Province.State,pattern=".*AL.*", replacement="Alabama")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*AK.*", replacement="Alaska")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*AZ.*", replacement="Arizona")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*AR.*", replacement="Arkansas")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*CA.*", replacement="California")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*CO.*", replacement="Colorado")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*CT.*", replacement="Connecticut")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*DE.*", replacement="Delaware")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*FL.*", replacement="Florida")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*GA.*", replacement="Georgia")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*HI.*", replacement="Hawaii")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*ID.*", replacement="Idaho")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*IL.*", replacement="Illinois")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*IN.*", replacement="Indiana")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*IA.*", replacement="Iowa")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*KS.*", replacement="Kansas")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*KY.*", replacement="Kentucky")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*LA.*", replacement="Louisiana")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*ME.*", replacement="Maine")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*MD.*", replacement="Maryland")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*MA.*", replacement="Massachusetts")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*MI.*", replacement="Michigan")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*MN.*", replacement="Minnesota")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*MS.*", replacement="Mississippi")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*MO.*", replacement="Missouri")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*MT.*", replacement="Montana")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*NB.*", replacement="Nebraska")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*NV.*", replacement="Nevada")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*NH.*", replacement="New Hampshire")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*NJ.*", replacement="New Jersey")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*NM.*", replacement="New Mexico")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*NC.*", replacement="North Carolina")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*ND.*", replacement="North Dakota")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*OH.*", replacement="Ohio")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*OK.*", replacement="Oklahoma")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*OR.*", replacement="Oregon")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*PA.*", replacement="Pennsylvania")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*RI.*", replacement="Rhode Island")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*SC.*", replacement="South Carolina")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*SD.*", replacement="South Dakota")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*TN.*", replacement="Tennessee")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*TX.*", replacement="Texas")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*UT.*", replacement="Utah")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*VT.*", replacement="Vermont")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*VA.*", replacement="Virginia")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*WA.*", replacement="Washington")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*WV.*", replacement="West Virginia")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*WI.*", replacement="Wisconsin")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*WY.*", replacement="Wyoming")

df_covadd$Province.State <- str_replace_all(df_covadd$Province.State,pattern=".*D.C..*", replacement="District of Columbia")

--------------------------------------------------------------------------
長さ調節可フィルターも入る2重構造!洗濯可立体仕様のケアマスク●先行受注●【メール便で送料無料】【メール便A】マスク 布マスク 男女兼用 日本製 国内生産 二重構造 フィルター効果 ユニセックス 洗える 洗濯可能 清潔 花粉症 保湿 コットン 綿

------------------------------------------------------------------------------
【もし、楽天市場で何か買い物をされる場合は、買い物をする直前のタイミングで下記の楽天市場のバナーをクリックしてから、買い物をしていただけると、試作ダッシュボードの運営を支援していただくことになります】





------------------------------------------------------------------
 

------------------------------------------------------------------------
◆【COVID-19】国別、地域別の感染者数の推移を簡単に確認できる「DashBoard(ダッシュボード)」の試作です:新型コロナウイルスダッシュボード(Novel Coronavirus DashBoard)
 ------------------------------------------------------------------------------

-------------------------------------------------------------------

--------------------------------------------------------------------

2020年2月20日木曜日

◆Googleのダッシュ・ボード「データポータル」で、最新の日付のデータを表示させる方法を模索中です:データ元としてグーグルのスプレッドシートを利用した場合


How to display data of most recent date in Data Studio 「Covid-19」の感染者数の推移のデータを基にしたDash Board(ダッシュボード)を試作しています。

グーグルのアカウントがあれば無料で利用できる、「データポータル(Data Studio)」というダッシュボードのサービスを利用しています。

グーグルのスプレッドシートのデータをデータポータルに読み込んで、パネルや表、グラフを作成しています。

日々追加される感染者数のデータを、パネルやグラフ、表などで、わかりやすく表示させることができるのですが、最新の感染者数(累計)をパネルに表示させようとすると、ちょっとした工夫が必要なようです。

計算フィールドで「MAX(DATE)」を作成して利用すれば簡単ですが、それ以外の方法を試してみました。

例えば、「フィルター」を利用して、表示するデータの日付を設定できますが、データを更新するたびに「フィルター」の日付を変更する必要があります。

あるいは、レポート上で「期間選択」できるようにして、ユーザーに日付選択をしてもらうことも可能ですが、不特定多数の人が利用するレポートとしては、デフォルトで最新データが表示されるようにしておきたいものです。

また、データポータルの日付絞り込み機能で、「今日」「昨日」などの設定もできますが、「昨日」のデータを表示させるようにしている場合は、午前0時を過ぎると「一昨日」のデータの表示ができなくなってしまいます。

「データの中の日付で、最新の日付に対応したデータ」を表示させるというのは、既成の機能では難しいようです。

そこで、少し手間がかかり、自動更新ではありませんが、下記のような方法で、最新データの表示を行っています。

まず、データはグーグルのスプレッドシート上で、下のような形になっています。


1.データの「日付」の列「Date」を参照して、「日付のシリアル値」の列を作成

「N(日付のセル)」という「N()」という関数などで日付からシリアル値を得ることができます。
 C列に日付のデータがあるとすると、「=N(C2)」といった入力になります。この関数を利用して、J列にシリアル値の列を作成します。

あるいは、単に、「Date」の列のセルを参照して、新しい列の表示設定を「数値」にする方法もあります。


2.「日付のシリアル値」の列を元にして、「日付のランキング」の列「DRank(名前は適当)」を作成

「RANK(当該セル,日付シリアル値の列全体,0)」といった関数を使います。
J列に日付のシリアル値があるとすると、K2のセルに=RANK(J2, J:J, 0)と入力し、K列全体にコピペします。


3.「日付のランキング」の列を利用して、フィルターでパネルや表などに表示させるデータを最新のものにします

「RANK()」関数では、3番目の引数を「0」とすると、最大値に対して「1」を返します。つまり、日付のシリアル値が最大になっているデータ(最新の日付のデータ)の「RANK()」関数の値は「1」になります。そこで、データ・ポータルのフィルターで「Drank」の列の値が「1に等しい」、という条件でデータを絞り込むように設定します。

データの追加・更新時に、J列、K列といった2つの列を整えないといけませんが、データ・ポータルのフィルターの設定は一度しておけば、データ更新時にフィルター設定を触らなくても最新データが表示されます。

以上のような処理によって、下の図で言うと、「表」を利用した「Date」の表示、三つの「パネル」の表示は、「データの中の最新の日付のデータ」になります。




----------------------------------------------------

---------------------------------------------------
-

◆【COVID-19】国別、地域別の感染者数の推移を簡単に確認できる「DashBoard(ダッシュボード)」の試作です:新型コロナウイルスダッシュボード(Novel Coronavirus DashBoard)

【COVID-19】今後、中国本土以外の地域への感染拡大が懸念されているため、国別、地域別の感染者数の推移を簡単に確認できるダッシュボードを試作してみました(Data source : JHU CSSE Covid19 Daily Reports)。

2020年2月8日土曜日

◆グーグル・スプレッドシートの便利な機能:ImportHTML()関数は手軽なスクレイピングツールです

グーグルのスプレッドシートのImportHTML()関数はとても便利です。手軽なスクレイピングツールとして利用することができます。

例えば、A1のセルに情報を取得したいページのURLを入力し、B1のセルに「=ImportHTML(A1,"table", 1)」と入力すれば、当該ページにある表のデータをきれいに読み込むことができます。本当に手軽なスクレイピングツールです。

URLが別のグーグル・スプレッドシートだった場合、複数のシートがあっても、「=ImportHTML(A1,"table", 2)」とすれば2番目のシートのデータを読み込むことができます。

例えば、下記のような使い方ができます。

気象庁の月平均気温偏差の表をImportHTML()関数によって、スプレッドシートに読み込み、グーグルのダッシュボードのデータの取得先に設定しています。この仕組みによって、ダッシュボードのデータの入手、更新がとても簡単になります。

ダッシュボードでは、気象庁の数表がソート可能なインタラクティブな表になっています。

実際に以下のページのダッシュボードのデータは、スプレッドシートのImportHTML()関数で入手したデータになっています。

  ◆日本の月平均気温偏差(℃):月別の時系列データの分析:グーグルのデータポータルのダッシュボードによる、並べ替えができる表です
----------------------------------------------------

---------------------------------------------------
-

2020年2月7日金曜日

◆インフルエンザの流行の水準は、昨年の水準を大きく下回って推移:「定点当たり報告数」20年第5週(1月27日~2月2日)まで

インフルエンザの定点観測データ(定点当たり報告数の推移):2020年第5週(1月27日~2月2日)まで
国立感染症研究所のホームページに、インフルエンザの流行についての週ごとのデータがあります。毎年、第36週(8月末~9月初旬)から翌年の第35週までの1年間が「インフルエンザシーズン」とされていて、「2019-2020年シーズン」は、2019年9月2日から2020年8月30日までです。
国立感染症研究所のホームページから週ごとの「インフルエンザの定点当たり報告数」のデータをダウンロードして、グラフを作成しています。
「インフルエンザの定点当たり報告数」は、2020年の第5週(1月27日~2月2日)では14.11で、前週の18から減少しました。
 第5週は、前年比32.63%、前週比78.39%となっています。
下のグラフは、第5週(1月27日~2月2日)のものです。         
year W01 W02 W03 W04 W05 W06 W07 W08 W09 W10 W11 W12 W13 W14 W15
15年 21.5 33.3 37.0 39.4 29.1 19.0 12.2 8.3 5.9 4.3 4.0 3.8 2.6 2.1 1.6
16年 2.0 4.1 10.6 22.6 34.7 40.0 37.2 36.1 35.4 28.2 21.1 13.8 11.2 7.0 5.1
17年 10.6 15.2 28.7 39.4 38.1 28.6 23.9 16.9 13.6 11.1 10.3 7.7 6.8 5.1 4.0
18年 16.3 26.4 51.9 52.4 54.3 45.4 29.6 22.6 17.4 12.1 8.7 5.3 3.4 2.0 1.7
19年 16.3 38.5 53.9 57.1 43.2 26.3 12.5 9.0 5.9 4.1 2.9 2.5 1.7 1.5 1.7
20年 13.9 18.3 16.7 18.0 14.1 NA NA NA NA NA NA NA NA NA NA
2018年、2019年の1月、2月ごろは数が多かったようです。2009年からグラフ化すると、線が多くて見づらいため、2015年からのデータのグラフも作成しています。
36週からのデータに絞り、スケールを変えたグラフも作成しています。「定点当たり報告数」は、2020年の第5週(1月27日~2月2日)では14.11で、前週の18から減少しています。18年シーズン、17年シーズンを下回る水準になっています。

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

----------------------------------------------------

---------------------------------------------------
 
------------------------------------------------------------------------------
-------------------------------------------------------------------------------