Ответ от blindJesse является правильным и полезным, поскольку он опирается на базовые функции R.
Во многих пакетах есть дополнительные вспомогательные оболочки.Вот один из timeDate , который требует преобразования в его тип:
R> isWeekend( as.timeDate( seq( as.Date("2011-01-01"),
+ to=as.Date("2011-01-07"), by=1 ) ) )
2011-01-01 2011-01-02 2011-01-03 2011-01-04 2011-01-05 2011-01-06 2011-01-07
TRUE TRUE FALSE FALSE FALSE FALSE FALSE
R>
, а вот еще один подход с использованием функции из RcppBDT :
R> sapply(seq(as.Date("2011-01-01"),to=as.Date("2011-01-07"), by=1),getDayOfWeek)
[1] 6 0 1 2 3 4 5
R>
R> sapply(seq(as.Date("2011-01-01"),to=as.Date("2011-01-07"), by=1),getDayOfWeek)
+ %%6 == 0
[1] TRUE TRUE FALSE FALSE FALSE FALSE FALSE
R>
В пакете lubridate также есть wday()
, и, несомненно, в других пакетах он присутствует в некоторых функциях.