緊急事態宣言による「巣ごもり」がインターネット通信量に与える影響は報道でも取り上げられていたが、電力消費量への影響はどうなのだろうかと、ふと疑問を抱いた。在宅勤務を始めた人は空調のぶんだけ電気代が増えていると思うが、その増分は事業所の減分と釣り合っているのだろうか。
東京電力のホームページに時間ごとの電力消費量が2017年分からCSVファイルで掲載されていたので、それを使って調べてみた。
データは年ごとにCSVファイルで公開されているので、1本のデータフレームにする。
library(tidyverse)
get_powerstat <- function(url){
read_csv(url,
skip = 3,
col_names = c("date", "hour", "DkW"),
col_types = cols(
date = col_date(format = "%Y/%m/%d"),
hour = col_time(),
DkW = col_double()
))
}
base_url <- "https://www.tepco.co.jp/forecast/html/images/"
file_name <- c("juyo-2017.csv",
"juyo-2018.csv",
"juyo-2019.csv",
"juyo-2020.csv")
file_list <- str_c(base_url, file_name)
data <- map_dfr(file_list, get_powerstat)
data
## # A tibble: 32,232 x 3
## date hour DkW
## <date> <time> <dbl>
## 1 2017-01-01 00:00 2783
## 2 2017-01-01 01:00 2634
## 3 2017-01-01 02:00 2520
## 4 2017-01-01 03:00 2438
## 5 2017-01-01 04:00 2389
## 6 2017-01-01 05:00 2394
## 7 2017-01-01 06:00 2491
## 8 2017-01-01 07:00 2626
## 9 2017-01-01 08:00 2715
## 10 2017-01-01 09:00 2637
## # ... with 32,222 more rows
知りたいのはピーク電力なので最大値を取りたいが、集計単位をどうするか。グラフ映えを考慮し、週番号単位にすることとした。
data %>%
mutate(
year = format(date, "%Y"),
week_num = lubridate::isoweek(date),
mega_watt = DkW / 100
) %>%
group_by(year, week_num) %>%
slice_max(DkW) %>%
filter(week_num <= 35) -> data_mod
data_mod
## # A tibble: 141 x 6
## # Groups: year, week_num [140]
## date hour DkW year week_num mega_watt
## <date> <time> <dbl> <chr> <dbl> <dbl>
## 1 2017-01-06 17:00 4349 2017 1 43.5
## 2 2017-01-14 18:00 4455 2017 2 44.6
## 3 2017-01-20 17:00 4899 2017 3 49.0
## 4 2017-01-24 18:00 4846 2017 4 48.5
## 5 2017-02-02 18:00 4532 2017 5 45.3
## 6 2017-02-09 17:00 4957 2017 6 49.6
## 7 2017-02-14 18:00 4409 2017 7 44.1
## 8 2017-02-21 18:00 4415 2017 8 44.2
## 9 2017-02-27 18:00 4273 2017 9 42.7
## 10 2017-03-07 18:00 4294 2017 10 42.9
## # ... with 131 more rows
加工したデータを折れ線グラフにする。年ごとの違いが分かりやすいよう、カラースケールをグラデーションのものに変える。
data_mod %>%
ggplot() +
geom_line(mapping = aes(x = week_num, y = mega_watt, color = year)) +
scale_color_brewer(palette = "YlOrRd") +
labs(
title = "週ごとの時間あたり最大電力使用量(東京電力)",
caption = "データ https://www.tepco.co.jp/forecast/html/download-j.html",
x = "週番号(ISO)",
y = "最大電力使用量(メガワット/時間)",
color = "年"
)
特に違いはなさそう。