Удалите определенные элементы из последовательности дат в R

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

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

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


person Faraz    schedule 08.01.2020    source источник


Ответы (2)


Вы можете создать вектор дат, который хотите удалить, а затем использовать %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))
person Ronak Shah    schedule 08.01.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')
person akrun    schedule 08.01.2020