Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 是否将正常人从起始时间起的分钟数转换为日期时间(“yyyy-mm-dd HH:mm:SS”)?_R_Date_Netcdf_Posixct - Fatal编程技术网

R 是否将正常人从起始时间起的分钟数转换为日期时间(“yyyy-mm-dd HH:mm:SS”)?

R 是否将正常人从起始时间起的分钟数转换为日期时间(“yyyy-mm-dd HH:mm:SS”)?,r,date,netcdf,posixct,R,Date,Netcdf,Posixct,我正在使用一个netcdf文件,其时间单位如下所述: “自1850-01-16T14:06:00起的分钟数” 我想有一个更熟悉的日期格式,以便更容易的日期匹配和处理。给出了有帮助的来源,但我无法确定我是否使用了错误的解析格式,或者日期是否真的与我的期望不符 我查看了strtime()和as.POSIXct()的帮助,还没有弄清楚要用什么格式来解析这个奇怪的时间结构 # Example of the origin format and first 8 values origin <- &qu

我正在使用一个netcdf文件,其时间单位如下所述: “自1850-01-16T14:06:00起的分钟数”

我想有一个更熟悉的日期格式,以便更容易的日期匹配和处理。给出了有帮助的来源,但我无法确定我是否使用了错误的解析格式,或者日期是否真的与我的期望不符

我查看了
strtime()
as.POSIXct()
的帮助,还没有弄清楚要用什么格式来解析这个奇怪的时间结构

# Example of the origin format and first 8 values
origin <- "1850-01-16T14:06:00"
dates_as_times <- c(52559874, 52602354, 52644834, 52688754, 
                    52732674, 52776594, 52820514, 52865154)
#原点格式和前8个值的示例

origin有一些用于转换netcdf文件的包

library(RNetCDF)
library(lubridate)
out <- utcal.nc("minutes since 1850-01-16T14:06:00", dates_as_times)
out
#     year month day hour minute second
#[1,] 1949    12  23   12      0      0
#[2,] 1950     1  22    0      0      0
#[3,] 1950     2  20   12      0      0
#[4,] 1950     3  23    0      0      0
#[5,] 1950     4  22   12      0      0
#[6,] 1950     5  23    0      0      0
#[7,] 1950     6  22   12      0      0
#[8,] 1950     7  23   12      0      0

或者另一种选择是

library(ncdf.tools)
convertDateNcdf2R(dates_as_times, origin = ymd_hms(origin))

或者我们可以乘以60

as_datetime(dates_as_times * 60, origin = ymd_hms(origin))

我感谢您的快速响应,现在不确定这是R/netcdf问题还是posixct问题,可能是本地问题。下面是有关数据源的更多信息。我知道,由于数据源本身的原因,此转换的输出应每隔约1个月进行一次。当使用xarray在python中读取它时,日期是:1950-01-16 12:00:00、1950-02-15 00:00:00,等等,这是我的预期输出。这两种方法返回:“1851-09-16 22:03:54 UTC”,“1851-09-17 09:51:54 UTC”@AdamKemberling如果你能显示预期的输出,那就太好了。是python输出correct@AdamKemberling如果我乘以60
as_datetime(dates\u as_times*60,origin=ymd\u hms(origin))
python输出与较大集合中的其余文件一致,因此我相信它是正确的。前5个值的预期输出为:1950-01-16 12:00:00,1950-02-15 00:00:00,1950-03-16 12:00:00,1950-04-16 00:00:00,1950-05-16 12:00:00。此文件和50个集合中的一个以“minutes-since”格式读入,其他文件按预期读入。@AdamKemberling还有一个带有
库(ncdf.tools)的选项;convertDateNcdf2R(日期作为时间,原点=ymd\U hms(原点))
as_datetime(dates_as_times * 60, origin = ymd_hms(origin))