找到最接近的日期(但不是同一日期)中的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(dist) == dist)]
return(ifelse(roundDown, min(closest), max(closest)))
}), origin="1970-1-1")
}
当:
> nonNAdays
[1] "2011-08-15" "2011-08-18" "2011-08-19"
我得到:
> closestDate('2011-08-15', nonNAdays)
[1] "2011-08-15"
我希望功能给我最近的日期,而不是日期本身。所以在这种情况下,“2011-08-18”。我怎样才能改变我的代码来获得这个? 谢谢。
答
只是删除的日期是距离DIST计算和选择操作等于:
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"
EricaO,如果你发现你的问题回答,那么请接受它通过选中的对勾做回答。 – Arun 2013-03-06 07:08:00