【问题标题】:When importing time series without date (only hh:mm:ss) R decides to set all timestamps to 1899-12-31导入不带日期的时间序列时(仅 hh:mm:ss)R 决定将所有时间戳设置为 1899-12-31
【发布时间】:2020-06-05 17:51:17
【问题描述】:

我尝试导入两个数据集(xlsx 格式)。这两个数据集包含相对于时间的温度和光照测量值(采用 HH:MM:SS 格式)。

测量是在 22:35:41 - 04:49:41 进行的,但是当时间经过午夜时,日期不会增加。所以日期停留在 1899-12-31。当我尝试绘制它时,我得到了这个:

所以这里发生的事情是第一个数据点出现在情节的末尾,我真的不想显示日期,因为它是错误的(我只想显示 hh:mm:ss 格式)

我希望它看起来像这样(在@filbranden in this question 的帮助下在 Python 中完成):

Here is the link to the dataset

Here is the link to an R-notebook

【问题讨论】:

  • 简单:如果 datetime
  • 听起来不错@Roland,但是在 R 中是如何做到的呢?我是否必须循环遍历时间列并检查日期并在 datetime 完成时更改它?
  • 类似DF[DF$datetime < as.POSIXct("1899-12-31 12:00:00"), "datetime"] <- DF[DF$datetime < as.POSIXct("1899-12-31 12:00:00"), "datetime"] + 3600 * 24

标签: r date datetime timestamp time-series


【解决方案1】:

我现在已经按照你说的做了,@Roland,它成功了。

代码如下:

Temperature[Temperature$Time < as.POSIXct("1899-12-31 12:00:00"), "Time"] <- Temperature[Temperature$Time < as.POSIXct("1899-12-31 12:00:00"), "Time"] + 3600 * 24

Light[Light$Time < as.POSIXct("1899-12-31 12:00:00"), "Time"] <- Light[Light$Time < as.POSIXct("1899-12-31 12:00:00"), "Time"] + 3600 * 24

p = ggplot() + geom_line(data = Temperature, aes(x = Time, y = Temperature), color = "blue") + geom_line(data = Light, aes(x = Time, y = Light), color = "red") + xlab('Time') + ylab('Temp/Light')
print(p)

剧情如下:

【讨论】:

    猜你喜欢
    • 2015-07-18
    • 1970-01-01
    • 2016-07-22
    • 2023-03-30
    • 2018-12-14
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多