Удалить определенные элементы из последовательности дат в R - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь создать последовательность дат в R без определенных дней. Я использую следующий код для создания последовательности:

date_range<- seq(as.Date("2018-1-1"),as.Date("2018-12-31"), by='days')

, но я не хочу удалять определенные дни, например, «2018-10-16» и «2018-9-12». Я не уверен, как это сделать. Я новичок в R, и любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 09 января 2020

Вы можете создать вектор дат, который хотите удалить, и затем использовать %in%

remove_dates <- as.Date(c('2018-10-16', '2018-9-12'))
all_dates <- seq(as.Date("2018-1-1"),as.Date("2018-12-31"), by='days')
all_dates[!all_dates %in% remove_dates]

или с помощью setdiff

as.Date(setdiff(all_dates, remove_dates))
1 голос
/ 09 января 2020

Попробуйте с between

library(dplyr)
date_range[!between(date_range,  as.Date('2018-9-12'), as.Date('2018-10-16'))]

Если это только эти даты, то используйте

as.Date(setdiff(date_range, c("2018-09-12", "2018-10-16")), origin = '1970-01-01')
...