LubridateでExcelの日付形式を適切な日付に変換する方法

私は、2016年12月1日であるべきなのに、残念ながら42705という数字形式で日付が記録されているcsvで作業しています。

Lubridateなどのパッケージを使って、Rで正しいフォーマットに変換したいのですが、どうすればいいですか?これを処理する関数はないでしょうか?

ソリューション

この変換には lubridate を使用する必要はなく、基本関数 as.Date がうまく処理します。Excelでは1899年12月30日です。

as.Date(42705, origin = "1899-12-30")
# [1] "2016-12-01"

もし、列の型を保持したい場合は、 readxl パッケージの read_excel 関数を使用してみてください。この関数を使うと、数値の書式を保持したまま XLS や XLSX ファイルを読み込むことができます。

解説 (6)

ここでは、ジャニトラとティブルパッケージを使った別の方法を紹介します。

install.packages("janitor")
install.packages("tibble")

library(tibble)
library(janitor)

excel_numeric_to_date(as.numeric(as.character(YourDate)), date_system = "modern")    
解説 (0)