事前:这是一个关于如何提问的例子贴,贴中的问题会在回复中给出解答
一列数据是40,000行出生日期列,想将此列转化为年龄,问题衍生为如何精确计算两个给定时间的时间差,并转换为指定格式
个人思路是通过将字符转换成日期类数据,得到天数差再除以365.25。
于是造了两个数据进行试验:
> y1<-as.Date("1986-11-04")
> y2<-as.Date("2017-01-01")
> y2-y1
Time difference of 11016 days
> as.numeric(y2-y1)/365.25
[1] 30.16016
由于存在闰年的影响,所以除以365.25,然而并不够精确,网上很多答案都是自己写函数按照条件分情况,比较麻烦
想要的结果是尽量用一行代码得到精确地结果,尤其是考虑到当出生日期是1月1日的时候闰年的影响可能比较突出。
R版本:3.3.3,windows版本:win10 64位