1. ホーム
  2. r

[解決済み] 2つの日付の間にあるすべての日のベクトルを作成する

2023-07-10 04:21:06

質問

Rで、2つの指定された日付の間に発生したすべての有効日を箇条書きにする簡単な方法はありますか?例えば、私は次のような入力が必要です。

itemizeDates(startDate="12-30-11", endDate="1-4-12")

以下のような日付を生成すること。

"12-30-11" "12-31-11", "1-1-12", "1-2-12", "1-3-12", "1-4-12"

クラスや日付の書式については柔軟に対応しますので、コンセプトの実装をお願いします。

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

あなたが探しているのは seq

> seq(as.Date("2011-12-30"), as.Date("2012-01-04"), by="days")
[1] "2011-12-30" "2011-12-31" "2012-01-01" "2012-01-02" "2012-01-03"
[6] "2012-01-04"


または :

> as.Date(as.Date("2011-12-30"):as.Date("2012-01-04"), origin="1970-01-01")
[1] "2011-12-30" "2011-12-31" "2012-01-01" "2012-01-02" "2012-01-03"
[6] "2012-01-04"


以下は、あなたの具体的な要求に応えるための関数です。

itemizeDates <- function(startDate="12-30-11", endDate="1-4-12", 
                         format="%m-%d-%y") {
  out <- seq(as.Date(startDate, format=format), 
             as.Date(endDate, format=format), by="days")  
  format(out, format)
}

> itemizeDates(startDate="12-30-11", endDate="1-4-12")
[1] "12-30-11" "12-31-11" "01-01-12" "01-02-12" "01-03-12" "01-04-12"