Вы можете использовать индексирование, создавая логический индекс, чтобы показать, какие записи в кадре данных являются первыми месяца. Используйте seq.Date
для создания индекса:
# create index
ind <- seq.Date(as.Date("2008-01-01"), as.Date("2017-12-01"), by = "month")
# index the dataframe
df2 <- df[df[, 1] %in% ind, ]
Это берет строки, где записи в df
находятся в векторе ind
. Для чего это стоит, этот подход незначительно (15%) быстрее, чем подход subset
.
# dummy data
df <- data.frame("x" = seq.Date(as.Date("2008-01-01"), as.Date("2017-12-01"), by = "day"))