在数据框中将日历日期集转换为儒略日数

时间:2017-06-13 20:14:39

标签: r date dataframe calendar julian

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

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

如何在列中找到包含朱利安日的专栏&#39; jDate&#39;?

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

你可以做到

room_data = validated_data.pop('room')

reservation = Reservation.objects.create(**validated_data)
room = Room.objects.get_or_create(name=room_data['name'])
reservation.room = room
reservation.save()

获取日期,然后

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

答案 1 :(得分:0)

基于aosmith的评论,我做到了这一点并得到了我想要的东西。

> 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