gpt4 book ai didi

r - 如何在 R 中为 is.holiday() chron 包定义假期

转载 作者:行者123 更新时间:2023-12-04 10:56:28 29 4
gpt4 key购买 nike

我正在尝试使用 chronis.holiday()功能,但我无法让它工作。文档说要修改 .Holiday反对您希望使用的假期,但我对 .Holiday 所做的更改似乎没有被 is.holiday() 检测到.有人可以提供一个加载假期的适当方式的例子吗?

最佳答案

这很重要,可能值得引用 chron维护者作为一个错误。

library(chron)
library(timeDate)
hlist <- c("CAVictoriaDay","CACanadaDay","CALabourDay")
(ss <- dates(sapply(sapply(hlist,holiday,year=2011),as.Date)))
.Holidays <- ss

(实际上比我更频繁地在 R 中处理日期的人可能对前面的东西有一个更优雅的解决方案,没有那个双 sapply 的东西......)

但这并没有改变重要的事情,那就是 Holidays的版本。在 chron命名空间:
chron::.Holidays  ## no change

线索在这里: Override a function that is imported in a namespace

命名空间魔法:
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"))

现在看,它已经奏效了:
chron::.Holidays

测试一下:
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)

关于r - 如何在 R 中为 is.holiday() chron 包定义假期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7451354/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com