gpt4 book ai didi

r - 在 timeDate 包中循环假期

转载 作者:行者123 更新时间:2023-12-02 09:22:01 25 4
gpt4 key购买 nike

我想使用 library(timeDate) 提取一些假期。我首先使用了以下语法:

EasterSunday<- as.Date(EasterSunday(2015:2018))

EasterSunday
# [1] "2015-04-05" "2016-03-27" "2017-04-16" "2018-04-01"

然后我想添加相应的假期该日期序列:

EasterSunday<- cbind.data.frame(hd=rep('EasterSunday',length(as.Date(EasterSunday(2015:2018)))),date=as.Date(EasterSunday(2015:2018)))

EasterSunday

#hd #date

#1 EasterSunday 2015-04-05
#2 EasterSunday 2016-03-27
#3 EasterSunday 2017-04-16
#4 EasterSunday 2018-04-01

然后我想循环该包中的所有假期:

holidays=c("GoodFriday","EasterSunday","EasterMonday")

# Here I could not find the appropriate function
do.call(cbind, lapply(holidays, function(x) EasterSunday((2015:2018))))

#[,1] [,2] [,3]
#[1,] ? ? ?

最佳答案

使用match.fun:

library(timeDate)

holidays <- c("GoodFriday", "EasterSunday", "EasterMonday")

do.call(rbind,
lapply(holidays, function(i){
foo <- match.fun(i)
data.frame(Holiday = i,
Dates = as.Date(foo(2015:2018)))

}))
# Holiday Dates
# 1 GoodFriday 2015-04-03
# 2 GoodFriday 2016-03-25
# 3 GoodFriday 2017-04-14
# 4 GoodFriday 2018-03-30
# 5 EasterSunday 2015-04-05
# 6 EasterSunday 2016-03-27
# 7 EasterSunday 2017-04-16
# 8 EasterSunday 2018-04-01
# 9 EasterMonday 2015-04-06
# 10 EasterMonday 2016-03-28
# 11 EasterMonday 2017-04-17
# 12 EasterMonday 2018-04-02

关于r - 在 timeDate 包中循环假期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41825688/

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