R - Всегда захватывать последний день предыдущего года в R - PullRequest
0 голосов
/ 30 января 2020

Я начинающий ученый, и это будет мой первый вопрос о StackOF.

У меня есть эта строка кода, чтобы помочь мне разобраться с данными. Мой фильтр даты - stati c. Я бы предпочел не менять go это жестко закодированное значение каждый год. Какова лучшая альтернатива для моего фильтра дат, чтобы сделать его более динамичным c? С столбцом даты также сложно работать, потому что это не «дата», это «dbl»

library(dplyr)
library(lubridate)

# create a sample dataframe
df <- data.frame(
    DATE = c(20191230, 20191231, 20200122)
)

До сих пор пробовал:

df %>%
    filter(DATE >= 20191231)

1 Ответ

0 голосов
/ 30 января 2020
# load packages (lubridate for dates)
library(dplyr)
library(lubridate)

# create a sample dataframe
df <- data.frame(
    DATE = c(20191230, 20191231, 20200122)
)

Это выглядит следующим образом:

      DATE
1 20191230
2 20191231
3 20200122

# and now...
df %>% # take the dataframe
    mutate(DATE = ymd(DATE)) %>% # turn the DATE column actually into a date
    filter(DATE >= floor_date(Sys.Date(), "year") - days(1)) 

... и фильтрует строки, где DATE равно >= за один день до первого дня этого года (floor_date(Sys.Date(), "year"))

        DATE
1 2019-12-31
2 2020-01-22
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...