我有一个这样的数据框:
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