始める無料で始める

`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_datesorders = 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 = ___)
コードを編集して実行