Rで解析:1週間のスケジュールを作成「time.slots」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

1週間のスケジュールをバーで表現するパッケージの紹介です。パッケージ収録の「SlotsDetails」コマンドで対象データを変換して「geom_weekly_timeslots」コマンドでプロットします。非常にシンプルなパッケージです。

なお、プロットの体裁は「ggplot2」パッケージなどの各「geom」コマンドで指定します。

パッケージバージョンは0.2.0。windows 11のR version 4.1.3で確認しています。

スポンサーリンク

パッケージのインストール

下記、コマンドを実行してください。

#パッケージのインストール
install.packages("time.slots")

実行コマンド

詳細はコメント、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("time.slots")

###データ例の作成#####
#tidyverseパッケージがなければインストール
if(!require("tidyverse", quietly = TRUE)){
  install.packages("tidyverse");require("tidyverse")
}
#日付データの作成に便利:lubridateパッケージがなければインストール
#紹介は[ https://www.karada-good.net/analyticsr/r-467/ ]
if(!require("lubridate", quietly = TRUE)){
  install.packages("lubridate");require("lubridate")
}
set.seed(1234)
#lubridate::ymd;locale="C", tz="Asia/Tokyo"を設定するのがポイント
#lubridate::wday;locale = "English_Japan.932"を設定するのがポイント
TestData <- tibble(StartDate = seq(lubridate::ymd_hms("2021-05-09 09:00:00",
                                                      locale = "C",
                                                      tz = "Asia/Tokyo"),
                                   lubridate::ymd_hms("2021-05-15 17:00:00",
                                                      locale = "C",
                                                      tz = "Asia/Tokyo"),
                                   by =  "1 days")) %>%
  mutate(StartDate = StartDate + hours(sample(0:(length(StartDate)-1))),
         EndDate = StartDate + hours(sample(1:(length(StartDate)))),
         Tiele = sample(c("A", "B", "NO"),
                        length(StartDate),
                        replace = TRUE),
         Fill = sample(c("#4b61ba", "#ad8a80", "#245041",
                         "red", "yellow"),
                       length(StartDate),
                       replace = TRUE))
########

#geom_weekly_timeslotsコマンドでデータを変換:SlotsDetailsコマンド
SlotData <- SlotsDetails(TestData$StartDate,
                         TestData$EndDate,
                         TestData$Tiele)

#一週間のタイムテーブルをプロット:geom_weekly_timeslotsコマンド
#体裁は各gomeコマンドで直接操作する
geom_weekly_timeslots(data = SlotData) +
  geom_rect(fill = TestData$Fill, col = "black") +
  ggfittext::geom_fit_text(col = "black",
                           grow = TRUE)

出力例

・geom_weekly_timeslotsコマンド


少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました