Найти ближайшую дату, соответствующую индексу строки, используя R - PullRequest
0 голосов
/ 21 сентября 2018

Мне нужно найти индекс для ближайшего совпадения дат из таблицы данных, как показано ниже.

coldate:  (data table or data frame) 

     mon_dd
1: 2018-09-04
2: 2018-09-10
3: 2018-09-17
4: 2018-09-24
5: 2018-10-01
6: 2018-10-08
7: 2018-10-15
8: 2018-10-22
9: 2018-10-29

x = as.Date("2018-09-25")

Я использую следующий код, но он выдает ошибку, как показано ниже.

which.min(abs(x-coldate[,"mon_dd"]))

Error: 
Error in x - coldate[, "mon_dd"] : 
  non-numeric argument to binary operator

Может кто-нибудь помочь мне разобраться в этом?

Спасибо.

1 Ответ

0 голосов
/ 21 сентября 2018
df<-c(as.Date("2018-09-04"),
           as.Date("2018-09-10"),
           as.Date("2018-09-17"),
           as.Date("2018-09-24"),
           as.Date("2018-10-01"),
           as.Date("2018-10-08"),
           as.Date("2018-10-15"),
           as.Date("2018-10-22"),
           as.Date("2018-10-29"))

x = as.Date("2018-09-25")

which.min(abs(df-x))
   [1] 4

при условии, что ваши данные имеют формат даты, это должно дать вам ответ, который вам нужен ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...