R - 我应该如何格式化 B.C.E. timevis 中的日期?

标签 r date format timeline

我需要在时间轴中显示一系列事件。其中一些事件发生在公元之前。我在 R 中使用 timevis

到目前为止,我已经尝试过以下代码:

library("timevis")
d <- as.POSIXlt(as.Date("0001/01/01"))
d$year <- d$year -1
dates <- (as.Date(d))
names <- c("Test")

dt <- data.frame(start=dates,content=names)
print(dt)

timevis(dt, width = 900)

上面的代码显示了 timevis 中 0 年初的事件,这很奇怪,但现在不是问题。当我更改为:

d$year <- d$year -2

事件在时间线中跳转到 01/01/2001

我昨天刚刚开始使用 R 进行个人研究项目,之前我从未使用过任何其他语言的 BCE 日期。我尝试过lubridate

我考虑过这个问题Date sequence in R spanning B.C.E. to A.D ,但我想问是否有任何 timevis 解决方法,也许。因为这个时间线显示的是公元前几年。

格式化 BCE 日期的正确方法是什么?

我期待得到一些帮助 - 谢谢

最佳答案

有一个discussion最近在 github 上讨论了这个话题。使用其中的信息,您需要以下内容才能使其在 RStudio 和应用程序中运行:

  • 将日期格式化为字符串
  • 对于 BCE 日期,您需要一个减号作为前缀,并且年份总共需要 6 位数字:"-002000-01-01"
  • 对于 CE 日期,您总共需要 4 位数字来表示年份:“0010-01-01”

在 RStudio 中适合我的示例代码:

library(timevis)

dt <- data.frame(content = c("test1", "test2", "test3", "test4"),
                 start = c("-000002-01-01", "-000001-01-01",
                                     "0010-01-01", "0100-01-01"))

timevis(dt, width = 900)

关于R - 我应该如何格式化 B.C.E. timevis 中的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62928278/

相关文章:

c# - 带有 TryParseExact 的 FormatException

r - 在 R 中使用 SVM 进行一类分类

r - 基于单一条件高效更新多个data.table列

sql - Hive:日期范围未从表中获取数据

javascript - momentJS 将可能的日期转换为 Date() js 格式

linux - WINDOWS向LINUX传输文件时如何修改路径格式?

r - 合并大量逻辑向量

r - R 中将向量分成两组的所有组合

sql - 使用 SAS 或 SQL 查找一行中的第一个和最后一个非空值?

python - Python 中的二进制 16