Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从R中的timeDate获得借出_R_Datetime_Time_Lubridate - Fatal编程技术网

从R中的timeDate获得借出

从R中的timeDate获得借出,r,datetime,time,lubridate,R,Datetime,Time,Lubridate,我想从2010年到2020年的所有借出的星期五。我目前正在使用timeDate来获得复活节、耶稣受难节和圣灰星期三等假期。如下 aw <- as.Date(AshWednesday(year = 2010:2020)) gf <- as.Date(GoodFriday(year = 2010:2020)) 我把days(4)改为days(0),因为我认为四旬斋的星期五实际上是在灰烬星期三之后立即开始的,而不是跳过一周。我从维基百科的“安布罗西仪式”中找到了上面的注释。我想这是有区别

我想从2010年到2020年的所有借出的星期五。我目前正在使用
timeDate
来获得复活节、耶稣受难节和圣灰星期三等假期。如下

aw <- as.Date(AshWednesday(year = 2010:2020))
gf <- as.Date(GoodFriday(year = 2010:2020))

我把
days(4)
改为
days(0)
,因为我认为四旬斋的星期五实际上是在灰烬星期三之后立即开始的,而不是跳过一周。我从维基百科的“安布罗西仪式”中找到了上面的注释。我想这是有区别的。

如果四旬斋开始于灰烬星期三之后的星期日,那么随后的所有星期五都是灰烬星期三之后的9、16、…、44天。您可以使用lubridate中的
days
ddays
函数为各个日期添加持续时间。由于您有一个日期向量,我们可以将四旬斋星期五存储在列表中

library(lubridate)
lent_fridays <- lapply(aw, function(x) x + days(seq(9, 44, by =7)))

如果四旬斋开始于火山灰星期三之后的星期日,那么所有随后的星期五都是火山灰星期三之后的9、16、…、44天。您可以使用lubridate中的
days
ddays
函数为各个日期添加持续时间。由于您有一个日期向量,我们可以将四旬斋星期五存储在列表中

library(lubridate)
lent_fridays <- lapply(aw, function(x) x + days(seq(9, 44, by =7)))

这里有一种方法:

library(dplyr)
library(purrr)
library(tidyr)
library(lubridate)

tibble(aw) %>% 
    mutate(aw_sunday = aw + lubridate::days(4)) %>%  #Find the first Sunday after each Ash Wednesday
    mutate(extra_days = map(aw_sunday, function(x) x + lubridate::days(1:40))) %>% #Find all series of 40 days after each sunday
    unnest %>% 
    mutate(week_day = lubridate::wday(extra_days, label = TRUE)) %>% #Find all the day names
    filter(week_day == 'Fri') %>%  # Filter out the fridays
    pull(extra_days)

这里有一种方法:

library(dplyr)
library(purrr)
library(tidyr)
library(lubridate)

tibble(aw) %>% 
    mutate(aw_sunday = aw + lubridate::days(4)) %>%  #Find the first Sunday after each Ash Wednesday
    mutate(extra_days = map(aw_sunday, function(x) x + lubridate::days(1:40))) %>% #Find all series of 40 days after each sunday
    unnest %>% 
    mutate(week_day = lubridate::wday(extra_days, label = TRUE)) %>% #Find all the day names
    filter(week_day == 'Fri') %>%  # Filter out the fridays
    pull(extra_days)

如果您不想使用lubridate,可以使用base seq.Date函数:

gf <- as.Date(GoodFriday(year = 2010:2020))
lentFridays <- lapply(gf, function(x)seq.Date(x, length.out = 6, by = "-7 days"))

gf如果不想使用lubridate,可以使用base seq.Date函数:

gf <- as.Date(GoodFriday(year = 2010:2020))
lentFridays <- lapply(gf, function(x)seq.Date(x, length.out = 6, by = "-7 days"))

gf作为旁白,为什么灰烬星期三之后的第一个星期五不算作借出的星期五?我不是基督徒,但我想它也包括在内……我不确定。从…起“在安布罗西仪式中,四旬斋开始于周日,在拉丁天主教堂的其他地方庆祝的是圣灰星期三,结束于罗马仪式,因此有40天,算上周日,但不算神圣星期四。”有一个很好的变化,我错了。也许它会在灰烬星期三之后的第一个星期五开始,但我可以纠正这一点。顺便说一句,为什么灰烬星期三之后的第一个星期五不算作四旬斋星期五?我不是基督徒,但我想它也包括在内……我不确定。从…起“在安布罗西仪式中,四旬斋开始于周日,在拉丁天主教堂的其他地方庆祝的是圣灰星期三,结束于罗马仪式,因此有40天,算上周日,但不算神圣星期四。”有一个很好的变化,我错了。也许它会在火山灰星期三之后的第一个星期五开始,但我可以纠正这一点。
lentFridays <- data.frame(lentFridays)
names(lentFridays) <- paste0("Year", 2010:2020)