LoginSignup
3
1

More than 5 years have passed since last update.

RでExcelのシリアル値と戦う

Last updated at Posted at 2018-11-18

Excelからデータをインポートする

ExcelからRにデータをインポートするには複数のパッケージが考えられますが、今回はインポートしようとするファイルの関係も考慮してopenxlsxを用いました。openxlsxでは以下のコードでデータのインポートができます。

xlsx.df <- read.xlsx(<インポート元パス>)

シリアル値のRでの日時型への変換

エクセルの日時変数をRで扱うから拝借すると以下の式でExcelのシリアル値を変換できる。中途半端な日付が起点になっているのは、歴史的経緯がありMicrosoft Excel の 1900 年 2 月 29 日問題 まとめなどに記載がある。

t <- as.POSIXct('1899-12-30') + as.difftime(serial.datetime, units = 'days')

演算誤差への対応

今回、用いたデータは区切りのよい時刻で取得されたはずだが、実際に変換した日時を観察すると演算誤差と思われるものがあったため、xtsパッケージのalign.time関数で丸めを行った。

t <- align.time(t - 2.5, 5)

この処理は時刻を5分間隔でまるめるを参照した。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1