mirror of
https://github.com/msberends/AMR.git
synced 2025-12-15 23:10:28 +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 1980-02-27 45 45.79726 19
|
|
#> 2 1953-07-26 72 72.38904 46
|
|
#> 3 1949-09-02 76 76.28493 50
|
|
#> 4 1986-08-03 39 39.36712 13
|
|
#> 5 1932-11-19 93 93.07123 67
|
|
#> 6 1949-03-30 76 76.71233 50
|
|
#> 7 1996-06-23 29 29.47945 3
|
|
#> 8 1963-09-16 62 62.24658 36
|
|
#> 9 1952-05-16 73 73.58356 47
|
|
#> 10 1952-11-14 73 73.08493 47
|
|
```
|