首页 > 解决方案 > R:将字符日期列表转换为给定来源的“天数”

问题描述

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

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

我是使用这种“朱利安”方法的新手,我将不胜感激任何关于我应该使用什么方法的建议。

代码如下

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)

标签: rdatenetcdfjulian-date

解决方案


转换datesDate类,减去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"))

推荐阅读