R: 月の週番号を取得する方法 質問する

R: 月の週番号を取得する方法 質問する

私は R 初心者です。
日付が属する月の週番号を知りたいです。

次のコードを使用します。

>CurrentDate<-Sys.Date()
>Week Number <- format(CurrentDate, format="%U")
>Week Number
"31"

%U は、その年の週番号を返します。
しかし、私が欲しいのは月の週番号です。
日付が 2014-08-01 の場合、1 を取得したいです。(日付は月の第 1 週に属します)。

例:
2014-09-04 -> 1 (日付は月の第 1 週に属します)。2014-09-10
-> 2 (日付は月の第 2 週に属します)。
など...

どうすればこれを入手できますか?

参照:http://astrostatistics.psu.edu/su07/R/html/base/html/strptime.html

ベストアンサー1

関数の類推によりweekdays

monthweeks <- function(x) {
    UseMethod("monthweeks")
}
monthweeks.Date <- function(x) {
    ceiling(as.numeric(format(x, "%d")) / 7)
}
monthweeks.POSIXlt <- function(x) {
    ceiling(as.numeric(format(x, "%d")) / 7)
}
monthweeks.character <- function(x) {
    ceiling(as.numeric(format(as.Date(x), "%d")) / 7)
}
dates <- sample(seq(as.Date("2000-01-01"), as.Date("2015-01-01"), "days"), 7)
dates
#> [1] "2004-09-24" "2002-11-21" "2011-08-13" "2008-09-23" "2000-08-10" "2007-09-10" "2013-04-16"
monthweeks(dates)
#> [1] 4 3 2 4 2 2 3

stri_datetime_fields()パッケージから使用できる別のソリューションstringi:

stringi::stri_datetime_fields(dates)$WeekOfMonth
#> [1] 4 4 2 4 2 3 3

おすすめ記事