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

One of my favorite things is ...

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2020.01.17
XML
カテゴリ:データ分析
​ 国立感染症研究所のインフルエンザの「定点当たり報告数」の時系列データは、「年単位」で、週別になっています。行が「年」で、列が「週」といったデータです。

 例えば、10月から12月の推移をグラフ化するのであれば、何の問題もないのですが、インフルエンザは、12月から2月にかけて流行するので、12月から2月にかけての推移をグラフ化したくなります。

 年別の週別データなので、年別の折れ線グラフの場合、例えば2019年12月の週と2019年1月の週が結び付いてしまいます。

 2019年12月と2020年1月を結び付けるには、「年単位」を「シーズン単位」にする必要があります。

 方法はいろいろあると思いますが、とりあえず、「R」のコードで「年単位」を「シーズン単位」にしてみました。あらかじめ、いろいろと「パッケージ」をインストールしておく必要がありますが、便利なパッケージが充実しているのも「R」の魅力です。RStudioでRMarkdownを用いる環境が結構快適です。

 
「R」を利用する以前であれば、Excelのシート上で、セル参照をコピペしたりして表を整形していたところですが、その方法は繰り返し作業には向いていませんし、ミスをする可能性も高いです。

 「R」のコードで対処する方法は、「日報」「週報」「月報」の作成などで、同じフォーマットのデータを処理するような繰り返し作業に向いています。
データシートには手を触れることが一切ないので、コピペのミスやデータの誤消去などのミスも防げます。

 この方法では、データシートを一度も見ることなく作業できますが、さすがにそれでは別のミスをする可能性があるので、「view(df_inftidys4)」といったコードでデータを確認しながら作業するようにします。

 もはや、「Excel不要」とまでは言えませんが、「R」のコードなどを利用すると、Excelをほとんど使わずにデータの処理ができて、しかも、繰り返し作業に対応し、ミスが少ないというメリットが付いてきます。データ前処理からグラフ作成や統計分析まで「一気通貫で」できるのが、「R」コードのメリットです。

 Excelを利用する場合も、データの前処理にパワークエリを活用すると、繰り返し作業が楽になります。


とりあえず、「R」を始めるのに参考になります



RStudioの環境はとても便利です。私もRStudioを利用しています。

<Rのコードの例>
1:
df_inf」というデータフレームにデータが読み込まれているという前提です。まず、行が年、週が列というワイド型(横型)のデータをロング型(縦型)にします。
df_inftidy <- df_inf %>% gather(key=weeks,influ,2:54)
df_inftidy <- as.data.frame(df_inftidy)


2:
インフルエンザシーズンは「第36週から翌年の第35週まで」なので、各年の第36週以降の「年」をそのままとし、第1週から第35週までの「年」から1を引き算した「年」の値の列(インフルエンザシーズンの列)を追加します。

 このことによって、例えば、2019年のデータの場合、第36週以降は2019年シーズンのもの、第35週以前は2018年のシーズンのものにすることができます。

 つまり、第36週以降はそのままの「年」の数字の列(インフルエンザシーズンの列)、第1週から第35週は、「年マイナス1」の数字の列(インフルエンザシーズンの列)を作成します。そして、その数字に「年シーズン」というテキストを付加した列を作成します。

 そのための方法としては、「第36週以降」のデータフレームと「第1週から第35週」のデータフレームの2つを作成して合体させる方法にしてみました。

df_inftidys1 <- df_inftidy %>% mutate(influ_season1=year_n -1) %>% filter(week_n <= 35)
df_inftidys2 <- df_inftidy %>% mutate(influ_season1=year_n) %>% filter(week_n >= 36)
df_inftidys3 <- rbind(df_inftidys1,df_inftidys2 )
df_inftidys3 <- df_inftidys3 %>% mutate(influ_season = paste0(influ_season1,"年シーズン"))
df_inftidys4 <- df_inftidys3 %>%  filter(influ_season1 >= 15)
df_inftidys4 <- na.omit(df_inftidys4)
df_inftidys4 <-  df_inftidys4 %>% filter(week_n >= 36 | week_n <= 1)


3:
インフルエンザシーズンは、「第36週から翌年の第35週まで」なので、グラフの軸で「週」を用いる場合に、その順番に並べるために、「週」の変数をファクター型にして、順番を定義します。

 なお、一切
Excelを使わないようにすることもできますが、下記のような文字列は、Excelで「"」「W36」「",」といった3列を用意し、各セルを「&」で文字列結合して、できた列を行方向に変換して作成すると、手早く作成できます。こういう場合は、Excelも便利です。

 なお、順序付けした「
weeks」の変数を、ordered()関数で処理しておくと、アニメーショングラフでweeks」で遷移させる場合にもその順序を利用できるようになりました。
df_inftidys4$weeks <- factor(df_inftidys4$weeks, levels=c("W36", "W37", "W38", "W39", "W40", "W41", "W42", "W43", "W44", "W45", "W46", "W47", "W48", "W49", "W50", "W51", "W52", "W53", "W01", "W02", "W03", "W04", "W05", "W06", "W07", "W08", "W09", "W10", "W11", "W12", "W13", "W14", "W15", "W16", "W17", "W18", "W19", "W20", "W21", "W22", "W23", "W24", "W25", "W26", "W27", "W28", "W29", "W30", "W31", "W32", "W33", "W34", "W35"))

df_inftidys4$weeks  <- ordered(df_inftidys4$weeks )


4:
グラフを作成します

ggplot(df_inftidys4, aes(x=weeks, y=influ, colour=influ_season,shape=influ_season,group = influ_season)) +      
 ylim(0,25)+ geom_line() + 
 geom_point(size=2.3)+ scale_color_brewer(palette = "Dark2")+labs(x="week",y="インフルエンザ_定点当たり報告数",title="インフルエンザのシーズン別の週ごとの推移(2015年シーズン~)") 




ggplot(df_inftidys5, aes(x=weeks, y=influ,shape=influ_season,colour=influ_season,shape=influ_season,group = influ_season))+ geom_line(size=1)+
  geom_point() + scale_shape_manual(values=c(1,2,3,4,5,6,7,8,9,23,11))+labs(x="week",y="インフルエンザ_定点当たり報告数",title="年別の週ごとの推移(2009年シーズン~") +
  theme(legend.position="top")+
  theme(axis.text.x = element_text(angle=90, hjust=-0.75, vjust=.5,size=6.8))



​※ご質問などは、「コメント欄」に記入してください。​答えられるものはお答えします。


★おすすめの記事 ​​
◆過去11年間の週別のインフルエンザの「定点当たり報告数」の推移のアニメーション・グラフです

◆インフルエンザの流行が始まったようです:今年は流行の始まりが早いようです

◆今後、アマゾン・プライム・ビデオは「Edge」ブラウザで観ることにしました:動画配信サービスの「HD」画質と「HD 1080p」画質。回線速度によって決まるというけれど、それは本当でしょうか?

◆Netflix:「ストレンジャー・シングス NG集」が公開されました:「Bloopers」とは「NG集」のことでした。​

◆Netflixの4半期決算報告で紹介されている作品は?:決算報告資料は、Netflixの話題作を探す一つの手段です

◆Netflix (NFLX)の第3四半期決算発表で、NFLXの株価上昇:1株利益が予想を上回る:「ストレンジャー・シングス」効果?で有料会員数の増加数は前年同期を上回る

◆Windowsパソコンで、Netflixを観る時に、Windows Sonic for HeadphonesやDolby Atmos for Headphonesをオンにする理由:「Amaze」トレーラーの録音データの分析から:Reasons to turn on Windows Sonic

◆やっぱり、Windowsパソコンで、Netflixを観る時に、Windows Sonic for HeadphonesやDolby Atmos for Headphonesをオンにする理由:「Amaze」トレーラーの録音データの分析から(その2)

◆How Windows Sonic looks like.​​:Windows Sonic for Headphonesの音声と2chステレオ音声の比較:7.1.2chテストトーンの比較で明らかになった違い:一目で違いがわかりました

----------------------------------------------------------------------------------------------------------
​​
​​​​​​





お気に入りの記事を「いいね!」で応援しよう

Last updated  2020.01.25 06:00:44
コメント(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.
X