将年份,日期和HHMM转换为yyyy-mm-dd HH:MM

时间:2014-01-28 15:25:21

标签: r posixct

当我将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

如何做到这一点?

1 个答案:

答案 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"))