`parse_date_time()` で並び順を指定する
dym_msh のように本当に変わった順序だったらどうでしょうか? その順序専用の関数はありませんが、そこで役立つのが parse_date_time() です。parse_date_time() は追加の引数 orders を取り、日付の各要素の並び順を指定できます。
たとえば、"2010 September 20th" をパースするには、parse_date_time("2010 September 20th", orders = "ymd") のように書けます。これは前の演習で使った ymd() 関数と同等です。
parse_date_time() の利点の一つは、使えるフォーマット文字が多いことです。たとえば、曜日名を A、12 時間表記を I、am/pm 指示子を p で指定できます。他にも多くの指定子があり、ヘルプページ ?parse_date_time に一覧があります。
もう一つの大きな利点は、複数の orders をベクトルで指定できることです。これにより、複数の形式が混在する日付でもパースできます。
この演習で試してみましょう。
この演習はコースの一部です
Rで扱う日付と時刻
演習の手順
xは一筋縄ではいかない日時です。指示にあるヒントを使ってxをパースしてください。two_ordersには 2 通りの順序があります。orders = c("mdy", "dmy")を指定して両方をパースしてください。short_datesをorders = c("dOmY", "OmY", "Y")でパースしてください。月や日が指定されていない日付はどうなりますか?
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Specify an order string to parse x
x <- "Monday June 1st 2010 at 4pm"
___(x, orders = "___")
# Specify order to include both "mdy" and "dmy"
two_orders <- c("October 7, 2001", "October 13, 2002", "April 13, 2003",
"17 April 2005", "23 April 2017")
parse_date_time(two_orders, orders = ___)
# Specify order to include "dOmY", "OmY" and "Y"
short_dates <- c("11 December 1282", "May 1372", "1253")
parse_date_time(short_dates, orders = ___)