Используя R, рассчитайте дату рождения, вычитая возраст (в годах до 2SD) из события
У меня есть дата-фрейм, который сообщает мне возраст каждого человека в годах (до 2 десятичных разрядов) на дату события:
id eventDate ageatEvent
1 10-Jun-90 44.07
2 15-Feb-91 30.45
3 20-Dec-93 59.43
4 13-Nov-93 45.84
5 26-Jul-95 25.94
6 10-Mar-99 21.97
7 20-Jun-05 32.28
8 31-Jan-96 48.82
Используя R, я хотел бы рассчитать дату рождения каждого человека (настолько точную, насколько это возможно, учитывая данные). Я пытался использовать lubridate, но неясно, во что мне следует преобразовывать числовой столбец age, чтобы вычесть из POSIXct моментальное событие eventDate.
Заранее большое спасибо за любую помощь.
1 ответ
Вы можете сделать это с lubridate
пакет.
dmy
преобразует символы в дату, используя порядок день-месяц-год. dyear
преобразует числовое значение в продолжительность в годах.
Разница дает результат.
library(tidyverse)
library(lubridate)
df <- tribble(
~id, ~eventDate, ~ageatEvent,
1, "10-Jun-90", 44.07,
2, "15-Feb-91", 30.45,
3, "20-Dec-93", 59.43)
df <- df %>%
mutate(eventDate = dmy(eventDate), ageatEvent = dyears(ageatEvent)) %>%
mutate(dateOfBirth = eventDate - ageatEvent)