在R中查找最近的日期(但不是相同的日期)

在R中查找最近的日期(但不是相同的日期),r,R,要查找最近的日期,我有: closestDate <- function(searchDate, dateList, roundDown=FALSE) { as.Date(sapply(as.Date(searchDate), function(x){ dist <- abs(x - as.Date(dateList)) closest <- dateList[which(min(dis

要查找最近的日期,我有:

closestDate <- function(searchDate, dateList, roundDown=FALSE) {
              as.Date(sapply(as.Date(searchDate), function(x){
                dist <- abs(x - as.Date(dateList))
                closest <- dateList[which(min(dist) == dist)]
                return(ifelse(roundDown, min(closest), max(closest)))
              }), origin="1970-1-1")
            }
> nonNAdays
[1] "2011-08-15" "2011-08-18" "2011-08-19"
我得到:

> nonNAdays
[1] "2011-08-15" "2011-08-18" "2011-08-19"
> closestDate('2011-08-15', nonNAdays)
[1] "2011-08-15"
我希望函数能给我最接近的日期,而不是日期本身。所以在这个例子中,“2011-08-18”。我如何修改我的代码才能得到这个?
谢谢。

只需从距离计算和选择操作中删除相等的日期:

> nonNAdays
[1] "2011-08-15" "2011-08-18" "2011-08-19"
  closestDate <- function(searchDate, dateList, roundDown=FALSE) {
           as.Date(sapply(as.Date(searchDate), function(x){
             dist <- abs(x - as.Date(dateList[dateList != searchDate]))
             closest <- dateList[dateList != searchDate][which(min(dist) == dist)]
             return(ifelse(roundDown, min(closest), max(closest)))
           }), origin="1970-1-1")
         }
 nonNAdays <- c("2011-08-15", "2011-08-18", "2011-08-19")
  closestDate('2011-08-15', nonNAdays)
#[1] "2011-08-18"

closestDate不应该
x
searchDate
?使用:closestDate我仍然得到:>closestDate('2011-08-15',非最新日期)[1]“2011-08-15”我会发布我使用的全部代码,因为我得到了uypu期望的结果。EricaO,如果你发现你的问题得到了答案,请勾选复选框接受答案。