Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.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 给定日期向量的下周日期_R_Date - Fatal编程技术网

R 给定日期向量的下周日期

R 给定日期向量的下周日期,r,date,R,Date,我试图得到R中日期向量的下一个星期。我的方法是创建一个工作日向量,然后找到周末的日期。问题是,对于周六和一些在我的国家很常见的假期,我最后得到的是前一周不起作用的一天 这是我的问题的一个例子: vecDates = as.Date(c("2011-01-11","2011-01-12","2011-01-13","2011-01-14","2011-01-17","2011-01-18", "2011-01-19","2011-01-20","2011

我试图得到R中日期向量的下一个星期。我的方法是创建一个工作日向量,然后找到周末的日期。问题是,对于周六和一些在我的国家很常见的假期,我最后得到的是前一周不起作用的一天

这是我的问题的一个例子:

vecDates = as.Date(c("2011-01-11","2011-01-12","2011-01-13","2011-01-14","2011-01-17","2011-01-18",
                      "2011-01-19","2011-01-20","2011-01-21","2011-01-24")) 
testDates = as.Date(c("2011-01-22","2011-01-23"))


findInterval(testDates,vecDates)
对于这两个日期,正确答案应该是10,即2011-01-24,但我得到9。
我想到了一个解决方案,在这个解决方案中,我删除了我正在分析的日期之前的所有日期,然后使用findInterval。它工作,但它不是矢量化的,因此有点慢,不适合我的实际目的

这是你想要的吗

 vecDates = as.Date(c("2011-01-11","2011-01-12",
                     "2011-01-13","2011-01-14",
                     "2011-01-17","2011-01-18",
                     "2011-01-19","2011-01-20",
                     "2011-01-21","2011-01-24")) 
testDates = as.Date(c("2011-01-20","2011-01-22","2011-01-23"))

get_next_biz_day <- function(testdays, bizdays){
   o <- findInterval(testdays, bizdays) + 1
   bizdays[o]
}

get_next_biz_day(testDates, vecDates)
#[1] "2011-01-21" "2011-01-24" "2011-01-24"

您可能需要查看标识工作日的bizdays包。@iod我已经准备好了一个工作日向量。这不是问题所在。我遇到的问题是将日期移动到下一个工作日FindInterval会在x之前为您提供元素的索引,即间隔数,例如:x同样,如果您在第一个日期之前提供日期,结果将是0@iod这正是我所需要的,同时也理解findInterval和我正在使用它。有人抄下来,然后回答。谢谢way@almost很好,但我每天都会搬家。但在您的示例中,2011-01-20不应该是move,因为它与日期完全匹配。我设法解决了那个问题。