Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-将修改后的数字儒略日期转换为";%M%D%yyy%H:%M:%S.000;_R_Date_Datetime_Julian Date - Fatal编程技术网

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”)