fasttime で高速にパースする
fasttime パッケージには、ISO 8601 形式の日時を読み込むために設計された fastPOSIXct() という関数が1つ用意されています。読み込む形式が1種類で、推測の必要がないため、とても高速です。
この演習では、その速さを体感するために、Auckland の時間別気象データ(17,000件超の日時)を読み込む際の速度を、lubridate の ymd_hms() と比較します。
実行時間の比較には、同名パッケージの microbenchmark() 関数を使います。計測したい式を、引数としていくつでも渡すことができます。
この演習はコースの一部です
Rで扱う日付と時刻
演習の手順
Auckland の時間別データから取り出した日時を、文字列としてベクトル dates に読み込み済みです。
datesの構造を確認し、文字列であり ISO 8601 形式になっていることを確かめてください。fasttimeでdatesをパースし、str()にパイプしてfastPOSIXctが正しくパースできていることを確認してください。- 次に計測を比較するため、
microbenchmarkを呼び出し、最初の引数でymd_hms()によるdatesのパース、2つ目の引数でfastPOSIXct()によるパースを指定してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
library(microbenchmark)
library(fasttime)
# Examine structure of dates
str(___)
# Use fastPOSIXct() to parse dates
fastPOSIXct(___) %>% str()
# Compare speed of fastPOSIXct() to ymd_hms()
microbenchmark(
ymd_hms = ___(dates),
fasttime = ___(dates),
times = 20)