このトピックは2024/1/9のExploratory Hourで放送されたものです。
Exploratoryには、文字列として保存された日付・時間データを日付型や日付時間型に変換する機能があり、この機能を使うことで、秒単位まで記録されているデータと分単位までしか記録されていない日付時間の文字列データが混在する列を日付時間型として統一することが可能です。
時間データを扱う方に役立ちます。
秒単位まで記録されているデータと分単位までしか記録されていない日付時間のデータが混在している場合、単純な型変換では欠損値が発生してしまいます。
ymd_hms
関数のtruncated
引数を使用することで、欠落している時間の単位を考慮した型変換が可能です。
今回は1行が1回のアクセスログを表し、列にはアクセス日時、イベントタイプなどの情報を持つデータを利用します。
今回のデータは、2016/11/1 11:26:14
のように秒単位まで記録されているデータと、2016/1/1 11:26
分単位までしか記録されていないデータが1つの列に混在しています。
このようなデータに対して、日付時間型に変換するメニューから、「Date(日付)/POSIXct(日付/時間)型に変換」の「Year, Month Day, Hour, Minutes, Day」を選択し、日付時間型への変換を試みたとします。
その場合、分単位までしか記録されておらず秒の情報が欠落しているデータは、秒の情報がないことで、欠損値として変換されてしまいます。
このようなときには、ymd_hms
関数のtruncated
引数を指定することで、欠落を許容する時間単位を指定することが可能です。
例えばtruncated引数に「1」を指定すると、秒単位の欠落を、「2」を指定すると分単位までの欠落を、「3」を指定すると時間単位までの欠落を許容します。これにより、データの粒度が異なる場合でも日付時間型への変換が可能になります。
「データタイプを変換」のメニューから、「Date(日付)/POSIXct(日付時間)型に変換」の「Year, Month Day, Hour, Minutes, Day」を選択します。
計算を作成のダイアログが開いたら、今回は、秒単位までの欠落を許容したいので、計算エディタに以下の内容を入力します。
ymd_hms(アクセス日時, truncated=1)
実行ボタンをクリックすると、秒の情報が欠落しているデータも正しく日付時間型に変換されます。
これで時間単位の異なるデータを統一的に扱えるようになりました。