◆Excelを使わないデータ分析・処理:「グラフ作成」「データ前処理」の方法:繰り返し作業に向いている「R」のコードを使用する方法です
国立感染症研究所のインフルエンザの「定点当たり報告数」の時系列データは、「年単位」で、週別になっています。行が「年」で、列が「週」といったデータです。 例えば、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」超入門 実例で学ぶ初めてのデータ解析 (ブルーバックス) [ 逸見 功 ]価格:1408円(税別、送料別)(2020/1/18時点)とりあえず、「R」を始めるのに参考になりますRユーザのためのRStudio[実践]入門 tidyverseによるモダンな分析フローの世界 [ 松村優哉 ]価格:3058円(税別、送料別)(2020/1/19時点)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テストトーンの比較で明らかになった違い:一目で違いがわかりました----------------------------------------------------------------------------------------------------------