I'm confused by the as.POSIXct in R.
I use the following code to convert values in columns to one column with Date and Time.
fname$DateTime <- as.POSIXct(paste(fname$yy, fname$mm, fname$dd, fname$HH, fname$MM), format = "%y %m %d %H %M")
Then, I set a time limit for plotting.
lims <- as.POSIXct(strptime(c("2015-10-23 4:00","2015-10-23 16:00"), format = "%Y-%m-%d %H:%M"))
Temp <- ggplot(DF, aes(x=DateTime, y=Temp)) + geom_line(aes(x=DateTime, y=Temp),colour="blue", alpha = 0.8) + scale_x_datetime(limits =lims, breaks=date_breaks("1 hour"), labels=date_format("%m/%d %H:%M")) + facet_wrap( ~ ID, ncol=4)
Temp + geom_vline(xintercept=as.numeric(as.POSIXct("2015-10-23 10:30")), linetype=4, colour="purple")
The time series starts at 10/23 08:00 instead of 10/23 4:00; ends at 10/23 20:00 instead of 10/23 16:00. The vertical line shows at 10/23 14:30 instead of 10/23 10:30. It is a 4-hour time shift!
What is that happened? How can I just show the right time series as the DateTime showed in the data frame? Please help me!
Thanks.