GNMO11
GNMO11

Reputation: 2259

Dplyr mutate new column value as na when other column equals na

I am using mutate(quarter_date = paste0(substring(year(DATE),1,4),"-0",quarter(DATE))) in order to get the quarter and year of my DATE column. However when the date column is NA I am getting NA-0NA. Is it possible to make values in quarter_date NA when they are NA in the DATE column?

Example:

    DATE    QUARTER_DATE
 2021-03-04     2021-01
     NA          NA-0NA

What I would like:

    DATE    QUARTER_DATE
 2021-03-04     2021-01
     NA           NA

Upvotes: 0

Views: 91

Answers (1)

jyjek
jyjek

Reputation: 2707


Try this one:

 dplyr::tibble(DATE = c(lubridate::today(), NA)) %>%
 dplyr::mutate(QUARTER_DATE = lubridate::floor_date(DATE, "quarter") %>% format( "%Y-%m"))
# A tibble: 2 x 2
  DATE       QUARTER_DATE
  <date>     <chr>       
1 2021-03-23 2021-01     
2 NA         NA  

Upvotes: 2

Related Questions