Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R,通过从事件中减去年龄(从年到2秒)来计算出生日期_R_Date_Dob - Fatal编程技术网

使用R,通过从事件中减去年龄(从年到2秒)来计算出生日期

使用R,通过从事件中减去年龄(从年到2秒)来计算出生日期,r,date,dob,R,Date,Dob,我有一个数据框,该数据框以年(小数点后2位)为单位给出事件发生日期的每个独特个体的年龄: id eventDate ageatEvent 1 10-Jun-90 44.07 2 15-Feb-91 30.45 3 20-Dec-93 59.43

我有一个数据框,该数据框以年(小数点后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 instant eventDate中减去


非常感谢您的帮助。

您可以使用
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)
库(tidyverse)
图书馆(lubridate)
df%
突变(dateOfBirth=eventDate-AgeAteEvent)

解决这一问题的简单方法是不要将数据存储为事件发生时的年龄。分数年对我来说甚至没有意义,因为每个月的天数不是固定的。你应该告诉我们这个数字是如何推导出来的。