【问题标题】:Converting Column data types转换列数据类型
【发布时间】:2021-12-24 20:06:05
【问题描述】:

我正在使用 R 进行一个大学项目,并且我使用的数据已将其日期和时间定义为字符列。我想将其更改为带有 lubridate 的日期时间,因为列字符的格式为 01-01-2019 00:00:00。

对此的任何帮助都会很棒,因为我完全迷路了。

编辑只是为了更好地具体化:我想更改整个表的值而不仅仅是一个值,这样我就可以使用日期来跟踪图中的数据。我也在添加下表的图像。

1

【问题讨论】:

  • 这是一个 R 问题。它与 RStudio 无关。
  • 请阅读r标签页顶部的信息。特别是不要使用图像作为输入数据,因为没有人愿意重新输入所有内容。使用dput

标签: r dataset lubridate


【解决方案1】:

假设输入是月-日-年时:分:秒,根据您的需要使用其中之一。如果您在不同的时区,第二个的输出会略有不同。

library(lubridate)

mdy_hms("01-01-2019 00:00:00")
## [1] "2019-01-01 UTC"

mdy_hms("01-01-2019 00:00:00", tz = "")
## [1] "2019-01-01 EST"

使用 lubridate 询问日期时间的问题是上面提供的,但如果你所有的日期时间都是 0 次的日期,那么你最好使用 Date 类,以避免担心时区和微妙的可能性可能伴随使用它们的错误。这仅使用基本 R。as.Date 将忽略最后的 00:00:00 垃圾。

as.Date("01-01-2019 00:00:00", "%m-%d-%Y")
## [1] "2019-01-01"

【讨论】:

  • 这对于单个值来说非常有用,但我想翻译包含日期的整个列(我已在帖子中添加了截图以供参考),因为我正在尝试绘制其他数据相对于显示上升和下降的日期
  • 您需要解决这个问题。在问题下查看我的 cmets,但您想要的是这样的:df %>% mutate(x = mdy_hms(x))
猜你喜欢
  • 2018-01-26
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多