R-将修改后的数字儒略日期转换为";%M%D%yyy%H:%M:%S.000;
我有一个非常大的数据集,来自一个测量水柱深度的仪器,并在每个测量值上附加一个日期/时间戳,作为修改后的朱利安日期。下面是数据的子集。该列位于R-将修改后的数字儒略日期转换为";%M%D%yyy%H:%M:%S.000;,r,date,datetime,julian-date,R,Date,Datetime,Julian Date,我有一个非常大的数据集,来自一个测量水柱深度的仪器,并在每个测量值上附加一个日期/时间戳,作为修改后的朱利安日期。下面是数据的子集。该列位于data.frame(date)中,包含数值 head(date) Date 41498.736111, 41498.736123, 41498.736134, 41498.736146, 41498.736157, 41498.736169, 当我将前两个值(即41498.736111和41498.736123)从日期列转移到Excel并将列格式化为
data.frame(date)
中,包含数值
head(date)
Date
41498.736111,
41498.736123,
41498.736134,
41498.736146,
41498.736157,
41498.736169,
当我将前两个值(即41498.736111和41498.736123)
从日期列转移到Excel并将列格式化为(MM:DD:YYYY hh:MM:ss.000)
,我得到了正确的8/12/2013 17:39:59.990
和8/12/2013 17:40:01.027
。这告诉我这些儒略日的起源日期是“1899-12-30”
。我会在Excel中完成这一切,但是我的数据集太大了,在接下来的几年里我将不得不做几次,所以我希望能够在R中完成这一切
是否有任何方法可以将这些修改过的儒略日期的整列转换为格式
%M%D%Y%H:%M:OS3“
?是的,您只需将秒数添加到原点即可:
as.POSIXct('1899-12-30')+(date$Date*24*60*60)
格式(如.POSIXct('1899-12-30')+(41498.736111*24*60*60),%Y-%m-%d%H:%m:%OS3”)
非常感谢!事实上,我必须使用下面的代码来获得正确的时间,但我肯定会有变化。谢谢你给我指明了正确的方向!y=格式(如.POSIXct('1899-12-30')+((日期*24*60*60)-3600),%y-%m-%d%H:%m:%OS3”)@Zalophus-格式和正确时间之间存在差异。数据上简单的as.Date
仍能准确记录正确的时间-请参阅。请注意,format
会将原始数字数据转换为字符串,而不需要额外的信息。@thelatemail-谢谢您提供的信息。在这些修改后的Julian日期值上尝试过去的as.Date时,我只能获得“yyyy-mm-dd”,而没有时间戳。当我尝试包含一个时间时,这些值都变成了NA。您知道如何使用as.date从上面列出的儒略日期值中获取格式“%M%D%Y%H:%M:OS3”吗?@Zalophus-您将无法从date
对象中提取一小时/分钟等,但例如,您可以看到一天中的部分数据仍然存在,只是无法格式化:例如dput(as.date(41498.736111,origin=“1899-12-30”)