【问题标题】:Converting sets of calendar dates to Julian days in a data frame在数据框中将日历日期集转换为儒略日
【发布时间】:2017-11-15 18:37:14
【问题描述】:

我是 R 的初学者,我正在尝试使用 R 将日历日期集转换为数据框中的儒略日期集。我知道有类似的问题得到了解答,但我无法得到我想要的。

df <- data.frame(Date = c('2010-06-20','2005-10-19','2000-05-01','2003-04-04','2010-11-20','2009-09-14'), No = c(1, 4, 6, 11, 7, 9))

df$ jDate <-  as.POSIXct(as.numeric(df$Date), origin = '1970-01-01')

给我

df

日期无 cDate

1 2010-06-20 1 1969-12-31 19:00:05

2 2005-10-19 4 1969-12-31 19:00:03

3 2000-05-01 6 1969-12-31 19:00:01

4 2003-04-04 11 1969-12-31 19:00:02

5 2010-11-20 7 1969-12-31 19:00:06

6 2009-09-14 9 1969-12-31 19:00:04

如何在“jDate”列中获得包含儒略日的列?

感谢您的帮助。

【问题讨论】:

  • 您可能会发现julian 函数很有用。
  • 当我试图弄清楚这一点时,我曾尝试过 tojulian 和 julian,但这次它确实奏效了!感谢您提出!
  • 如果有人能告诉我如何正确发布输出,我将不胜感激......

标签: r date dataframe calendar julian-date


【解决方案1】:

你可以的

df$Date <- as.Date(df$Date)

获取日期,然后

df$jDate <- format(df$Date, "%j")

获得朱利安日或

df$jDateYr <- format(df$Date, "%Y-%j")

添加年份(如果需要)。这返回

df
        Date No jDate  jDateYr
1 2010-06-20  1   171 2010-171
2 2005-10-19  4   292 2005-292
3 2000-05-01  6   122 2000-122
4 2003-04-04 11   094 2003-094
5 2010-11-20  7   324 2010-324
6 2009-09-14  9   257 2009-257

要详细了解可能的日期时间格式,请参阅?strptime

【讨论】:

  • 感谢您的快速回复!我试图获得自 1970-01-01 以来的儒略日,以便可以计算不同年份之间的天数(即不需要以 0 到 365 为界)。有没有办法做到这一点?
【解决方案2】:

根据aosmith的cmets,我做了这个,得到了我想要的。

> df$jDate <- julian(as.Date(df$Date), origin = as.Date('1970-01-01'))

df

日期无 jDate

1 2010-06-20 1 14780

2 2005-10-19 4 13075

3 2000-05-01 6 11078

4 2003-04-04 11 12146

5 2010-11-20 7 14933

6 2009-09-14 9 14501

【讨论】:

    猜你喜欢
    • 2014-01-14
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2013-07-21
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多