私は 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