Tôi đang cố gắng sử dụng chức năng 's is.holiday()
, nhưng tôi đang gặp khó khăn khi làm việc đó. Tài liệu hướng dẫn sửa đổi đối tượng .Holiday
với những ngày nghỉ mà bạn muốn sử dụng, nhưng những thay đổi tôi đã thực hiện cho .Holiday
dường như không bị phát hiện bởi is.holiday()
. Ai đó có thể cung cấp một ví dụ về cách thích hợp để tải ngày lễ?Cách xác định ngày lễ cho gói is.holiday() chron trong R
7
A
Trả lời
9
Điều này là không tầm thường và có thể đáng được giới thiệu đến người bảo trì chron
dưới dạng lỗi.
library(chron)
library(timeDate)
hlist <- c("CAVictoriaDay","CACanadaDay","CALabourDay")
(ss <- dates(sapply(sapply(hlist,holiday,year=2011),as.Date)))
.Holidays <- ss
(Một người thực sự làm việc với ngày tháng trong R thường xuyên hơn hơn tôi có thể có một giải pháp thanh lịch hơn cho những thứ trên, mà không có đúp sapply
điều ...)
Nhưng điều này doesn' t thay đổi điều quan trọng, đó là phiên bản của Holidays
trong chron
namespace:
chron::.Holidays ## no change
các đầu mối là ở đây: Override a function that is imported in a namespace
Namespace kỳ diệu:
unlockBinding(".Holidays", as.environment("package:chron"))
assignInNamespace(".Holidays", .Holidays, ns="chron",
envir=as.environment("package:chron"))
assign(".Holidays", .Holidays, as.environment("package:chron"))
lockBinding(".Holidays", as.environment("package:chron"))
Bây giờ nhìn, và nó đã làm việc:
chron::.Holidays
Kiểm tra nó ra:
yrvec <- seq.Date(as.Date("2011-01-01"),
as.Date("2011-12-31"),by="day")
plot(is.holiday(yrvec),axes=FALSE)
axis.Date(side=1,yrvec)
0
Tôi đã cố gắng để làm điều tương tự và thấy bài đăng cũ hơn này. Tôi không cần phải sửa đổi .Holidays
:
library(timeDate);library(chron)
hlist <- c("USChristmasDay","USGoodFriday","USIndependenceDay","USLaborDay",
"USNewYearsDay","USThanksgivingDay")
myholidays <- dates(as.character(holiday(2000:2013,hlist)),format="Y-M-D")
> is.holiday(as.Date("2013-11-28"),myholidays)
[1] TRUE
> chron::.Holidays
New Years Day Memorial Day Independence Day Labor Day Thanksgiving Christmas
01/01/92 05/25/92 07/04/92 09/07/92 11/26/92 12/25/92
Các vấn đề liên quan
- 1. Ngày làm việc/xử lý ngày lễ
- 2. Lịch ngày lễ, Định dạng tệp, et al
- 3. Tệp ngày lễ cho các quốc gia G20
- 4. Chức năng trả về ngày lễ Phục sinh cho năm nhất định
- 5. Ngày Lao động Vs. Lễ Tạ Ơn
- 6. Cách xác định hàm piecewise trong R
- 7. Làm cách nào để xác định tác giả của gói R?
- 8. Tính ngày kết thúc trong khi bỏ qua ngày lễ + thời gian Joda
- 9. Có thể xác định phiên bản của gói trong R install.packages không?
- 10. Xác thực định dạng ngày trong php
- 11. Xác định kích thước gói cho API vận chuyển UPS
- 12. Cách xác định ngày sinh hoặc ngày kỷ niệm xảy ra trong phạm vi ngày
- 13. Cách xác định ngày trong tuần đầu tiên trên iOS?
- 14. Thay đổi định dạng ngày tháng trong R
- 15. ngày xác định trong tệp json
- 16. Xác định bình đẳng ngày trong Javascript
- 17. Chuyển đổi ngày đến một ngày trong tuần vào R
- 18. Làm cách nào để xác định xem ngày có nằm trong hai ngày trong Java không?
- 19. Định dạng ngày cho tuần
- 20. Làm cách nào để xác định thứ tự nhập không gian tên trong [R]
- 21. Gợi ý cho gói tạo bảng R/LaTeX
- 22. Cách Rails để xác định ngày mai là gì?
- 23. Gói LaTeX và R?
- 24. Cách xác định ngày của 6 tháng trước đầy đủ
- 25. ngày Tính toán kinh doanh trong java mà không thứ Bảy, Chủ Nhật và ngày nghỉ lễ
- 26. Xác định các lớp học trong các gói
- 27. Cách xác thực định dạng ngày ở dạng Spring
- 28. Cách trỏ đến thư mục trong gói R?
- 29. tên múi giờ không xác định trong R strptime/as.POSIXct
- 30. Xác định chuỗi các số lặp lại trong R
Cảm ơn. Điều đó phức tạp hơn nhiều so với tôi mong đợi. –
Các giải pháp trên là tuyệt vời, và các công trình, với ngoại lệ mà có vẻ như một lỗi nếu hlist bao gồm "GBNewYearsEve" Tôi đã bắt đầu một câu hỏi mới trên [link] đó (http://stackoverflow.com/questions/ 26777282/trong-sử dụng-thời gian-r-gói-i-nhận-một-lỗi-khi-chỉ định-gbnewyearseve) – DaveRGP