我有一大批NetCDF文件,其中包含按月平均的历史天气数据。时间维度单位为“自1600-01-01以来的天数”,使用360天日历。我使用了PCICt软件包,根据360天日历正确格式化了时间维度。我的问题是:
[SOLVED] 经过一夜的思考,今天早上我来到办公室,并开始尝试类转换,最终得到了一个可以使用的日期类:
当我尝试将数据写入数据框或保存到输出文件时,会收到以下错误消息:Error in as.data.frame.default(x[[i]], optional = TRUE) : cannot coerce class ""PCICt"" to a data.frame
我能从这个PCICt数据中提取年份和月份吗?
#packages used
require("PCICt")
require("RNetCDF")
#dput output assigned to "ex" variable (units "Days since 1600-01-01")
ex <- structure(c(1095, 1125, 1155, 1185, 1215, 1245, 1275, 1305, 1335,
1365, 1395, 1425), .Dim = 12L)
#used PCICt to correctly format date stamp
cal <- "360_day"
origin <- ("1600-01-01")
seconds.per.day <- 86400
origin.pcict <- as.PCICt(origin,cal)
ex_pcict <- origin.pcict + (ex * seconds.per.day)
#result of PCICt code
> print(ex_pcict)
[1] "1603-01-16" "1603-02-16" "1603-03-16" "1603-04-16"
[5] "1603-05-16" "1603-06-16" "1603-07-16" "1603-08-16"
[9] "1603-09-16" "1603-10-16" "1603-11-16" "1603-12-16"
#class definition
> class(ex_pcict)
[1] "PCICt"
#attempt to write to data.frame and resulting error message
> data.frame(date = ex_pcict)
Error in as.data.frame.default(x[[i]], optional = TRUE) :
cannot coerce class ""PCICt"" to a data.frame
[SOLVED] 经过一夜的思考,今天早上我来到办公室,并开始尝试类转换,最终得到了一个可以使用的日期类:
ex_char <- as.character.PCICt(ex_pcict)
ex_date <- as.Date(ex_char)
然后我可以将"ex_date"写入数据框并导出为.txt文件。我还使用as.numeric(format(ex_date, "%m")和"%Y"分别提取月份和年份。