1. ホーム
  2. r

日付から日数を引く/加えるにはどうしたらいいですか?

2023-08-18 14:30:01

質問

プルデータを格納するためのフォルダを構築しようとしています。フォルダには、そのデータのプルの日をラベル付けしたいです。

例) 5日前のデータをmysqlから引っ張ってきて、そのフォルダに5日前の日付の名前を付けたい。

MySQLは日付の演算を簡単に扱うことができます。Rがどのようにそれを行うか正確にはわかりません。POSIXctで適切な秒数を引き、POSIXltに変換してMM_DD_YYYYというフォルダ名にすればいいのでしょうか?

それとももっと良い方法があるのでしょうか?

どのように解決するのですか?

数字を引き算するだけです。

> as.Date("2009-10-01")
[1] "2009-10-01"
> as.Date("2009-10-01")-5
[1] "2009-09-26"

というのは Date クラスは日数しか持たないので、基本的な計算を行うだけでよいでしょう。

もし何らかの理由でPOSIXltを使いたいのであれば、そのスロットを使えばいいのです。

> a <- as.POSIXlt("2009-10-04")
> names(unclass(as.POSIXlt("2009-10-04")))
[1] "sec"   "min"   "hour"  "mday"  "mon"   "year"  "wday"  "yday"  "isdst"
> a$mday <- a$mday - 6
> a
[1] "2009-09-28 EDT"