【问题标题】:Converting julian days in to date format yyyy-dd-mm HH:MM:SS将儒略日转换为日期格式 yyyy-dd-mm HH:MM:SS
【发布时间】:2021-02-01 11:44:21
【问题描述】:

借助以下函数(原自R - convert POSIXct to fraction of julian day),我将不同的观察起点从日期格式转换为儒略日。

date <- as.POSIXct(c('2006-12-12 13:00:00', '2008-12-12 12:00:00', '2007-12-12 12:00:00'))

julian_conv <- function(x) { 
  if (is.na(x)) { 
    return(NA)
  }
  else {
    j <-julian(x, origin = as.POSIXlt(paste0(format(x, "%Y"),'-01-01')))
    temp <- unclass(j) 
    return(temp[1] + 1) 
  }
}

julian.days <- sapply(date, julian_conv)

结果:

print(julian.days)
[1] 346.5417 347.5417 346.5000

然后我取了这些起点的平均值。

mean <- mean(julian.days)
[1] 346.8611

现在我需要将平均起点转换回日期格式 (yyyy-dd-mm HH:MM:SS),一次用于普通年份,一次用于闰。现在的问题是,这怎么可能?

【问题讨论】:

    标签: r datetime julian-date


    【解决方案1】:

    您可以将儒略日添加到日期对象中:

    2006 年是 365 天的一年:

    as.Date("2006-01-01") + mean(julian.days)
    

    2008 年是闰年:

    as.Date("2008-01-01") + mean(julian.days)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 2020-03-07
      • 1970-01-01
      相关资源
      最近更新 更多