Используя 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)
Другие вопросы по тегам