Exploratory アワー #402 - 秒単位と分単位の時間データが混在する列を日付時間型として統一したい

このトピックは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) 

実行ボタンをクリックすると、秒の情報が欠落しているデータも正しく日付時間型に変換されます。

これで時間単位の異なるデータを統一的に扱えるようになりました。

ビデオ

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio