A simple problem needs help【number of items to replace is not a multiple of replacement length】

Hello community,
I'm a new user of R. Now I meet a problem and want to get help here.
I want to use the function“difftime” to calculate the age of everybody in my dataframe. My sentence is:
dat$age<-round(as.numeric((difftime("2017-12-31", dat$BIRTHDAY, units = "days"))/365.25),digits = 2)
But the result show there are so many NA in "age", and the system point out that “number of items to replace is not a multiple of replacement length”.
Here is my dataframe:

``` r
data.frame(
id = c(1,2,3,4,5),
birthday = c("1968-10-15","2007-11-16","1988-11-15","2008-11-16","1995-10-20"),
deathstatus = c(1,1,1,0,0),
deathdate = c("2009-11-16", "2008-11-16", "2007-11-16",NA,NA)
)
#>   id   birthday deathstatus  deathdate
#> 1  1 1968-10-15           1 2009-11-16
#> 2  2 2007-11-16           1 2008-11-16
#> 3  3 1988-11-15           1 2007-11-16
#> 4  4 2008-11-16           0       <NA>
#> 5  5 1995-10-20           0       <NA>

Created on 2019-03-04 by the reprex package (v0.2.1)

Any suggestion is welcome. Thank you.