mirror of
https://github.com/msberends/AMR.git
synced 2026-03-15 22:47:55 +01:00
95 lines
2.4 KiB
Markdown
95 lines
2.4 KiB
Markdown
# Age in Years of Individuals
|
|
|
|
Calculates age in years based on a reference date, which is the system
|
|
date at default.
|
|
|
|
## Usage
|
|
|
|
``` r
|
|
age(x, reference = Sys.Date(), exact = FALSE, na.rm = FALSE, ...)
|
|
```
|
|
|
|
## Arguments
|
|
|
|
- x:
|
|
|
|
Date(s), [character](https://rdrr.io/r/base/character.html) (vectors)
|
|
will be coerced with
|
|
[`as.POSIXlt()`](https://rdrr.io/r/base/as.POSIXlt.html).
|
|
|
|
- reference:
|
|
|
|
Reference date(s) (default is today),
|
|
[character](https://rdrr.io/r/base/character.html) (vectors) will be
|
|
coerced with [`as.POSIXlt()`](https://rdrr.io/r/base/as.POSIXlt.html).
|
|
|
|
- exact:
|
|
|
|
A [logical](https://rdrr.io/r/base/logical.html) to indicate whether
|
|
age calculation should be exact, i.e. with decimals. It divides the
|
|
number of days of
|
|
[year-to-date](https://en.wikipedia.org/wiki/Year-to-date) (YTD) of
|
|
`x` by the number of days in the year of `reference` (either 365 or
|
|
366).
|
|
|
|
- na.rm:
|
|
|
|
A [logical](https://rdrr.io/r/base/logical.html) to indicate whether
|
|
missing values should be removed.
|
|
|
|
- ...:
|
|
|
|
Arguments passed on to
|
|
[`as.POSIXlt()`](https://rdrr.io/r/base/as.POSIXlt.html), such as
|
|
`origin`.
|
|
|
|
## Value
|
|
|
|
An [integer](https://rdrr.io/r/base/integer.html) (no decimals) if
|
|
`exact = FALSE`, a [double](https://rdrr.io/r/base/double.html) (with
|
|
decimals) otherwise
|
|
|
|
## Details
|
|
|
|
Ages below 0 will be returned as `NA` with a warning. Ages above 120
|
|
will only give a warning.
|
|
|
|
This function vectorises over both `x` and `reference`, meaning that
|
|
either can have a length of 1 while the other argument has a larger
|
|
length.
|
|
|
|
## See also
|
|
|
|
To split ages into groups, use the
|
|
[`age_groups()`](https://amr-for-r.org/reference/age_groups.md)
|
|
function.
|
|
|
|
## Examples
|
|
|
|
``` r
|
|
# 10 random pre-Y2K birth dates
|
|
df <- data.frame(birth_date = as.Date("2000-01-01") - runif(10) * 25000)
|
|
|
|
# add ages
|
|
df$age <- age(df$birth_date)
|
|
|
|
# add exact ages
|
|
df$age_exact <- age(df$birth_date, exact = TRUE)
|
|
|
|
# add age at millenium switch
|
|
df$age_at_y2k <- age(df$birth_date, "2000-01-01")
|
|
|
|
df
|
|
#> birth_date age age_exact age_at_y2k
|
|
#> 1 1999-06-30 26 26.69589 0
|
|
#> 2 1968-01-29 58 58.11233 31
|
|
#> 3 1965-12-05 60 60.26301 34
|
|
#> 4 1980-03-01 46 46.02740 19
|
|
#> 5 1949-11-01 76 76.35616 50
|
|
#> 6 1947-02-14 79 79.06849 52
|
|
#> 7 1940-02-19 86 86.05479 59
|
|
#> 8 1988-01-10 38 38.16438 11
|
|
#> 9 1997-08-27 28 28.53699 2
|
|
#> 10 1978-01-26 48 48.12055 21
|
|
```
|