Estoy tratando de usar chron
's is.holiday()
función, pero estoy teniendo problemas para hacerlo funcionar. La documentación dice que modifique el objeto .Holiday
con las vacaciones que desea usar, pero los cambios que he realizado en .Holiday
no parecen ser detectados por is.holiday()
. ¿Podría alguien proporcionar un ejemplo de la forma adecuada de cargar vacaciones?Cómo definir las vacaciones para el paquete is.holiday() chron en R
7
A
Respuesta
9
Esto no es trivial y probablemente merece ser referido al mantenedor chron
como un error.
library(chron)
library(timeDate)
hlist <- c("CAVictoriaDay","CACanadaDay","CALabourDay")
(ss <- dates(sapply(sapply(hlist,holiday,year=2011),as.Date)))
.Holidays <- ss
(Alguien que realmente funciona con fechas en R con más frecuencia de lo que hago, probablemente, tiene una solución más elegante para la materia anterior, sin necesidad de que hacer doble sapply
cosa ...)
Pero este doesn' t cambiar lo importante, que es la versión de Holidays
en el espacio de nombres chron
:
chron::.Holidays ## no change
la pista está aquí: Override a function that is imported in a namespace
Espacio de nombres mágica:
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"))
Ahora mira, y se ha trabajado:
chron::.Holidays
probarlo:
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
yo estaba tratando de hacer lo mismo y se encontró esta publicación más antigua. No necesité modificar .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
Cuestiones relacionadas
- 1. ¿Qué clase de tiempo/fecha R y qué paquete usar?
- 2. R instala el paquete globalmente
- 3. Sugerencia para el paquete de creación de tabla R/LaTeX
- 4. ¿Cómo debo formatear mis datos para el paquete R mlogit?
- 5. paquete rutas relativas en R
- 6. Trabajar con centésimas de segundo mediante el paquete de Chron o modificar la precisión
- 7. ¿Cómo uso las funciones en un paquete R enmascarado por otro paquete?
- 8. El mismo paquete R en varias bibliotecas
- 9. ¿Es posible definir la versión de un paquete en R install.packages?
- 10. Dependencias del paquete R
- 11. R definir las dimensiones del marco de datos vacío
- 12. Cobertura del código R para el paquete de prueba
- 13. ¿Hay algún paquete para mapeo relacional de objetos en R?
- 14. ¿Cómo descargar un paquete sin reiniciar R?
- 15. Servicio web nacional de vacaciones
- 16. Ver el origen de un paquete R
- 17. Mecanismo estándar para tener opciones específicas del paquete en R?
- 18. Curva ROC en R usando el paquete ROCR
- 19. Cómo definir adecuadamente las constantes
- 20. El uso de paquete 'Brobdingnag' en el lenguaje R
- 21. trabajando con paquete sin Namespace en R
- 22. Administración de activos externos en el paquete R
- 23. Problema al cargar el paquete de wordnet en R
- 24. ¿Cómo puedo determinar el autor de un paquete R?
- 25. ¿Cómo instalar las dependencias cuando se usa "R CMD INSTALL" para instalar los paquetes R?
- 26. Cómo definir una función por partes en R
- 27. ¿Cómo instalo un paquete R desde el origen?
- 28. ¿Cómo incluir el archivo jar al crear un paquete R?
- 29. Citando artículos en el paquete R utilizando roxygen2 y BibTeX?
- 30. ¿Cómo debo definir las subrutinas 'estáticas' en Perl?
Gracias. Eso fue significativamente más complicado de lo que esperaba. –
La solución anterior es fantástica, y funciona, con la excepción de que parece haber un error si hlist incluye "GBNewYearsEve" He comenzado una nueva pregunta sobre ese [enlace] (http://stackoverflow.com/questions/ 26777282/in-using-timedate-r-package-i-receive-an-error-when-specifying-gbnewyearseve) – DaveRGP