我喜欢计算 2001 年的星期日、星期一、星期二、...、星期六的数量。将以下日期 { 1 月 1 日、4 月 5 日、4 月 13 日、12 月 25 日和 12 月 26 日} 视为公共假期,并将其视为星期日. 我怎样才能在 R 中做到这一点?- 谢谢
问问题
852 次
2 回答
5
这是立陶宛语版本:
dates <- as.Date("2001-01-01") + 0:364
wd <- weekdays(dates)
idx <- which(dates %in% as.Date(c("2001-01-01", "2001-04-05",
"2001-04-13", "2001-12-25", "2001-12-26")))
wd[idx] <- "sekmadienis"
table(wd)
wd
antradienis ketvirtadienis penktadienis pirmadienis sekmadienis šeštadienis trečiadienis
51 51 51 52 57 52 51
于 2012-07-25T15:15:12.543 回答
3
尝试以下操作:
# get all the dates you need
dates <- seq(from=as.Date("2001-01-01"), to=as.Date("2001-12-31"), by="day")
# makes sure the dates are in POSIXlt format
dates <- strptime(dates, "%Y-%m-%d")
# get rid of the public holidays
pub <- strptime(c(as.Date("2001-01-01"),
as.Date("2001-04-05"),
as.Date("2001-04-13"),
as.Date("2001-12-25"),
as.Date("2001-12-26")), "%Y-%m-%d")
dates <- dates[which(!dates%in%pub)]
# To see the day of the week
weekdays <- dates$wday
# Now, count the number of Mondays for example:
length(which(weekdays == 1))
有关详细信息,请参阅DateTimeClasses 的文档。请记住将 5 添加到您的星期日计数。
于 2012-07-25T15:24:48.877 回答