我需要您的帮助,并感谢任何愿意考虑我的请求的人。
我想将数据帧的日期列(类 = 日期)转换为自最早观察日期以来的天数,包括从 1966 年 10 月 1 日到 2006 年 9 月 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
[...]
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激。谢谢
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
Run Code Online (Sandbox Code Playgroud)
这应该有效:
library(lubridate)
ref_date <- dmy('01-10-1966')
new_date <- dmy('17/12/1966')
day_number <- as.numeric(difftime(new_date, ref_date))
Run Code Online (Sandbox Code Playgroud)
编辑:
这是一个例子;要直接应用于您的数据集,请使用:
df$day_number <- as.numeric(difftime(df$Date, ref_date))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1818 次 |
| 最近记录: |