如何从“创建工作日向量”;“今天”;75天前在R的约会?
我想创建一个向量,从最近的工作日开始,运行75天到75个工作日之前的工作日-我怎么做?假设我可以使用seq?我是R的新手如何从“创建工作日向量”;“今天”;75天前在R的约会?,r,date,R,Date,我想创建一个向量,从最近的工作日开始,运行75天到75个工作日之前的工作日-我怎么做?假设我可以使用seq?我是R的新手 如果今天是星期日(如2016年8月21日),则序列应在前一个星期五(2016年8月19日)开始,并返回到2016年5月9日的工作日。与Excel函数=WORKDAY(A1,-1)非常相似。我们可以创建一个天数序列,拒绝任何周末(注意-这将取决于您的区域设置),然后将输出缩减到75天 s1 <- seq(Sys.Date()-120, Sys.Date(), by = "
如果今天是星期日(如2016年8月21日),则序列应在前一个星期五(2016年8月19日)开始,并返回到2016年5月9日的工作日。与Excel函数=WORKDAY(A1,-1)非常相似。我们可以创建一个天数序列,拒绝任何周末(注意-这将取决于您的区域设置),然后将输出缩减到75天
s1 <- seq(Sys.Date()-120, Sys.Date(), by = "day")
s1 <- s1[!weekdays(s1) %in% c("Saturday", "Sunday")]
s1[(length(s1)-74):length(s1)]
s1我们可以设置一个天数序列,拒绝任何周末(注意-这将取决于您所在的地区),然后将输出缩减到75天
s1 <- seq(Sys.Date()-120, Sys.Date(), by = "day")
s1 <- s1[!weekdays(s1) %in% c("Saturday", "Sunday")]
s1[(length(s1)-74):length(s1)]
s1由于75天不是一个大数字,可能是这样的:
library(chron)
library(lubridate)
n = 75
Filter(function(x) !is.weekend(x), seq.Date(today(), by = '-1 day', length.out = (n+2)*7/5))[1:n]
# [1] "2016-08-19" "2016-08-18" "2016-08-17" "2016-08-16"
# [5] "2016-08-15" "2016-08-12" "2016-08-11" "2016-08-10"
# ...
因为75天不是一个很大的数字,可能是这样的:
library(chron)
library(lubridate)
n = 75
Filter(function(x) !is.weekend(x), seq.Date(today(), by = '-1 day', length.out = (n+2)*7/5))[1:n]
# [1] "2016-08-19" "2016-08-18" "2016-08-17" "2016-08-16"
# [5] "2016-08-15" "2016-08-12" "2016-08-11" "2016-08-10"
# ...
似乎落选的选民可以提供更好的答案。我很好奇,也很想看看。他们不喜欢我的回答either@RichardTelford他正试图为这个问题编写一个流或生成器,我们将拭目以待。整洁的解决方案,但在安装chron包并运行代码后,我返回:seq.Date(today(),by=“-1天”,length.out=(n+2)*7/5)中的错误:找不到“今天”功能抱歉。我忘了附上lubridate
软件包,而today()
就是从这里来的。看来投票人可以提供更好的答案。我很好奇,很想看到,他们不喜欢我的回答either@RichardTelford他正试图为这个问题编写一个流或生成器,我们将拭目以待。整洁的解决方案,但在安装chron包并运行代码后,我返回:seq.Date(today(),by=“-1天”,length.out=(n+2)*7/5)中的错误:找不到“今天”功能抱歉。我忘了附上lubridate
包,其中today()
是从哪里来的。如何将其反转,因此最新日期是序列中的第一个日期?尝试在rev()函数中包装第2行,但这导致输出不正确。请参阅编辑的版本。如何反转此操作,以便最新日期是序列中的第一个日期?尝试在rev()函数中包装第2行,但这导致输出错误。请参阅编辑的版本。