R:将字符日期列表转换为 "days since" 给定来源

R: Convert list of character dates to "days since" a given origin

我需要生成一个列表作为 NetCDF 文件的时间维度附加。该文件由许多文件堆叠而成,这些文件是根据 6 小时数据按月平均生成的。因此,每个 t 观察值只是堆栈中文件的时间顺序值。

首先,我生成了一个日期序列,将其转换为字符,然后创建了一个日期对象,说明来源是感兴趣的来源。我的 objective 是接收 "days since 1850-01-01" 的整数列表,但是,转换为整数后,我看到使用的原点仍然是 R 默认值“1970-01-01”。

我是使用这种 "Julian" 方法的新手,如果有任何关于我应该使用什么方法的建议,我将不胜感激。

代码如下

dates <- seq(as.Date("1901-01-01"), by = "month", length.out = 12)
dates <- as.character(dates)

o <- as.Date("1850-01-01")

dates <- as.Date(dates, origin = o)
dates
dates <- as.numeric(dates)

dates 转换为 Date class,减去 o 并将其转换为数字:

as.numeric(as.Date(dates) - o)
## [1] 18627 18658 18686 18717 18747 18778 18808 18839 18870 18900 18931 18961

交替将两者转换为数字:

as.numeric(as.Date(dates)) - as.numeric(o)

或使用difftime

as.numeric(difftime(as.Date(dates), o, unit = "day"))