当涉及 BC 和 AD 时,如何计算 R 中的日期差异

  • 本文关键字:计算 日期 何计算 BC AD r date
  • 更新时间 :
  • 英文 :


我有一个这样的数据框:

df = data.frame(dt = c('0101-01-01','0023-10-20'), comment = c('BC','AD'))

根据评论,第二个DT实际上是-23年。

如何让 R 识别第一个日期是 BC 并获得这两个日期的时差?

我们在更改为yearmon类后转换为numeric,将符号更改为-,表示"注释"中有"BC"并取差异

library(zoo)
v2 <- as.numeric(as.yearmon(df$dt))

如果我们想使"年"更近似

v2 <- lubridate::year(df$dt) + 
(strptime(df$dt, format = "%Y-%m-%d")$yday + 1)/365
i1 <- df$comment == "BC"
v2[i1] <- -1* v2[i1]
diff(v2)
#[1] 124.75

最新更新