【问题标题】:Converting combined Day/Time decimal format to POSIX将组合的日/时间十进制格式转换为 POSIX
【发布时间】:2015-11-21 00:32:17
【问题描述】:

我有一个我认为以 20 分钟为增量的数据集。年和月列以标准十进制值给出。但是日和小时/分钟/秒数据以组合小数形式给出(第一位是“日”,小数点后是时间)。例如:

Year      month decimal.day
2014       1      1.0139
2014       1      1.0278
2014       1      1.0417
2014       1      1.0556
2014       1      1.0694
2014       1      1.0833
2014       1      1.0972
2014       1      1.1111
2014       1      1.1250
2014       1      1.1389
2014       1      1.1528
2014       1      1.1667
2014       1      1.1806
2014       1      1.1944
  .        .      .
  .        .      .
  .        .      .
  .
 2014      1      1.9722
 2014      1      1.9861
 2014      1      2.0000
 2014      1      2.0139
 2014      1      2.0278
 2014      1      2.0417
 2014      1      2.0556
 2014      1      2.0694
 2014      1      2.0833

使用 R,是否可以将 decimal.day 列转换为标准时间格式?最后,我想将所有 3 列连接成标准的 POSIX "YYYY-MM-DD HH:MM:SS" 格式。

【问题讨论】:

  • 建议的重复问题仅处理十进制数 (H:M:S) 中的时间分量。上述十进制数字包含日期和时间元素(Day H:M:S)

标签: r date datetime posixct posixlt


【解决方案1】:

您可以使用 as.POSIXct() 来执行此操作:

as.POSIXct.numeric((df$decimal.day-1)*24*3600, 
                   origin=paste(df$Year, df$month, 1, sep = "/"), tz="GMT")

注意 -1 从当月的第一天开始平衡

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 2014-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多