繁体   English   中英

R-将日期列转换为距数据框最早日期的天数

[英]R - convert Date column in days since the earliest date in a dataframe

我需要您的帮助,感谢任何考虑我要求的人。

我想将数据框的Date列(类=日期)转换为自最早的观察日期以来的天数,包括从1966-10-01到2006-09-30的日期。 因此,每天的观察值应该有一个唯一的值,该值在40年内应介于1到14640(40 * 366)之间。

这是我的“日期”列的一部分:

Date
17/12/1966
05/05/1968
30/10/1968
16/08/1970
07/01/1971
25/11/1971
29/09/1973
18/01/1974
17/09/1975
06/01/1976
28/11/1976
04/07/1978
15/11/1978
27/07/1980
20/09/1981
03/10/1981
11/09/1983
23/09/1984
25/10/1984
03/12/1985
07/12/1986

[...]

任何帮助将不胜感激。 谢谢

Base R具有Julian函数,并且可以选择指定原点:

#example
date<-as.Date("2016-06-27")

#base R
result<-julian(date, origin=as.Date("1966-10-01"))
result
#[1] 18167
#attr(,"origin")
#[1] "1966-10-01"

as.numeric(result)
#18167

这应该工作:

library(lubridate)
ref_date <- dmy('01-10-1966')
new_date <- dmy('17/12/1966')
day_number <- as.numeric(difftime(new_date, ref_date))

编辑:

那是一个例子; 要直接应用于您的数据集,请使用:

df$day_number <- as.numeric(difftime(df$Date, ref_date)) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM