2

日付の範囲を指定すると、特定の曜日の名前と、特定の月のその日の発生 (たとえば、毎月の第 2 金曜日) が対応する日付を返す関数を作成しました。ただし、それほど高速ではなく、その堅牢性を 100% 確信しているわけではありません。POSIXオブジェクトに対してこれらの種類の操作を実行できるRのパッケージまたは関数のセットはありますか? 前もって感謝します!

4

2 に答える 2

8

nextfri1 つの線源がzoo パッケージのzoo クイック リファレンス ビネットに示されている関数を使用すると、次のように第2 金曜日が得られます。dd"Date"

library(zoo)
d <- as.Date(c("2011-09-01", "2011-10-01"))
nextfri(d) + 7
## [1] "2011-09-09" "2011-10-14"

( nextfrizoo パッケージの一部ではありません。自分で入力する必要がありますが、1 行しかありません)

以下は、0 が日曜日、1 が月曜日などの曜日を示します。

as.POSIXlt(d)$wday
## [1] 4 6

本当に日時ではなく日付のみを扱っている場合は、タイム ゾーン エラーを回避するために、クラスで"Date"はなくクラスを使用する必要があります。R News 4/1"POSIXt"の記事を参照してください。

于 2011-09-26T17:32:39.380 に答える
0

timeDateパッケージにはその機能の一部が含まれています。この小さなコードスニペットは、そのパッケージのコードに基づいています。これはDates用であり、timeDateには基礎となるPOSIXタイプがあります。

nthNdayInMonth <- function(date,nday = 1, nth = 1){
  wday <- (as.integer(date) - 3) %% 7
  r <- (as.integer(date) + (nth -1) * 7 + (nday - wday)%%7)
  as.Date(r,"1970-01-01")
}
于 2011-09-26T17:43:28.803 に答える