Saya memiliki tanggal yang diformat

as.Date(variable, format="%Y%m%d")

Saya mengekstrak hari kerja dari itu menggunakan

weekdays(as.Date(variable))

Saya sekarang harus bisa mengatakan kejadian hari dalam seminggu tanggal itu. Misalnya, ini adalah hari Selasa kedua bulan Februari, atau ini adalah hari Jumat ke-4 bulan Maret.

0
tika 12 Maret 2017, 07:15

2 jawaban

Jawaban Terbaik

Kemunculannya hanyalah langit-langit (hari bulan / 7) dan hari bulan dapat diekstraksi menggunakan as.POSIXlt jadi gabungkan semuanya:

d <- as.Date(variable, format="%Y%m%d")
occ <- c("1st", "2nd", "3rd", "4th", "5th")
paste(occ[ceiling(as.POSIXlt(d)$mday / 7L)], weekdays(d), "of", months(d))
1
Simon Urbanek 12 Maret 2017, 04:38

Anda dapat menemukan nhari kerja dalam setahun dengan (as.integer(format(x, "%d")) - 1) %/% 7 + 1:

days <- as.Date("2017-03-01") + 0:9
wdays <- weekdays(days)
nth <- (as.integer(format(days, "%d")) - 1) %/% 7 + 1

(Masukkan data.frame untuk memudahkan penyelarasan :)

cbind.data.frame(days, wdays, nth)
#          days     wdays nth
# 1  2017-03-01 Wednesday   1
# 2  2017-03-02  Thursday   1
# 3  2017-03-03    Friday   1
# 4  2017-03-04  Saturday   1
# 5  2017-03-05    Sunday   1
# 6  2017-03-06    Monday   1
# 7  2017-03-07   Tuesday   1
# 8  2017-03-08 Wednesday   2
# 9  2017-03-09  Thursday   2
# 10 2017-03-10    Friday   2
1
r2evans 12 Maret 2017, 04:33