当我将CSV文件中的数据加载到R中时,我会收到以下数据框
dd <- data.frame(year = as.integer(c(2007,2007)),
doy = as.integer(c(156,156)),
HHMM = as.integer(c(1200,1200)),
var = as.numeric(c(11.2,11.2)))
dd[,1] <- as.character(dd[,1])
dd[,2] <- as.character(dd[,2])
dd[,3] <- as.character(dd[,3])
其中前三列是整数,最后一列是数字。我想将年份,日期和HHMM值转换为一个dateTime值,这可能吗?我想要的最终格式是YYYY-mm-dd HH:MM。
我可以结合年份和年份,但不能包括HHM,例如
strptime(paste(dd[,1], dd[,2],dd[,3]), format="%Y %j %HM")
NA NA
如何做到这一点?
答案 0 :(得分:1)
试试这个:
# convert your separate time elements to as.POSIXct
dd$time1 <- with(dd, as.POSIXct(paste(year, doy, HHMM), format = "%Y %j %H%M"))
# convert time to character representation in desired format
dd$time2 <- with(dd, format(time1, format = "%Y-%m-%d %H:%M"))