How to determine if date is a weekend or not (not using lubridate)

前端 未结 7 860
予麋鹿
予麋鹿 2020-11-29 12:00

I have a vector of date objects (yyyy-mm-dd) and I want to determine if any of them are on weekend or not. Is there a function that can determine this straighta

7条回答
  •  臣服心动
    2020-11-29 12:38

    You can use the base R function weekdays().

    x <- seq(Sys.Date() - 10, Sys.Date(), by = 1)
    weekdays(x, abbr = TRUE)
    # [1] "Wed" "Thu" "Fri" "Sat" "Sun" "Mon" "Tue" "Wed" "Thu" "Fri" "Sat"
    x[grepl("S(at|un)", weekdays(x))]
    # [1] "2014-10-11" "2014-10-12" "2014-10-18"
    

    As far as lubridate goes, wday() has a label argument. When set to TRUE, the (abbreviated) day names are returned instead of numbers. Use the abbr argument to change to full names.

    library(lubridate)
    wday(x, label = TRUE)
    # [1] Wed   Thurs Fri   Sat   Sun   Mon   Tues  Wed   Thurs Fri   Sat  
    # Levels: Sun < Mon < Tues < Wed < Thurs < Fri < Sat
    

提交回复
热议问题