【问题标题】:R - How should I format a B.C.E. date in timevis?R - 我应该如何格式化 B.C.E. timevis 中的日期?
【发布时间】:2020-11-05 17:50:26
【问题描述】:

我需要在时间轴中显示一系列事件。其中一些事件发生在共同时代之前。我在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 日期的正确方法是什么?

我期待一些帮助 - 谢谢

【问题讨论】:

    标签: r date format timeline


    【解决方案1】:

    最近在github上有一个discussion关于这个话题。使用那里的信息,您需要以下内容才能使其在 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)
    
    

    【讨论】:

    • 我没有在 github repo 中搜索,即使我在 timevis 文档中搜索并尝试了在线演示。他们应该发布此解决方案或将其作为文档中的一部分。
    • 是的,它有点隐藏,我认为那里的原始海报想将它包含在文档中但没有这样做。也许你可以在 github 上为这个问题做出贡献。
    猜你喜欢
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多