我是R的新手,试图分析来自HVAC传感器的时间序列数据。数据采用以下格式。我是否需要在开始任何分析之前将其转换为ts()对象,或者我可以在下面找到相同的结果:
Time | Value
1 7/6/16 4:45|28
2 7/8/16 4:51|31
3 7/6/16 5:10|26
4 7/6/16 5:10|26
5 7/6/16 5:11|26
6 7/6/16 5:11|26
str(dataset)
data.frame': 628 obs. of 2 variables:
$ Time : chr "7/6/16 4:45" "7/8/16 4:51" "7/6/16 5:10" "7/6/16 5:10" ...
$ Value: int 28 31 26 26 26 26 26 27 29 29 ...
现在我需要将时间格式从字符更改为任何其他格式吗?当我运行以下代码时:
dataset$Time=as.POSIXct(as.character(dataset$Time),format="%Y-%m-%d %H:%M:%S")
数据集中的时间变为NA
。
由于 Dwiti
答案 0 :(得分:0)
试试这个(假设你有m / d / y格式的日期)
dataset$Time = strptime(as.character(dataset$Time),format="%m/%d/%y %H:%M")
head(dataset$Time,3)
[1] "2016-07-06 04:45:00 IST" "2016-07-08 04:51:00 IST" "2016-07-06 05:10:00 IST"
答案 1 :(得分:0)
我们可以使用mdy_hm
包
lubridate
library(lubridate)
dataset$Time <- mdy_hm(dataset$Time)
dataset$Time
#[1] "2016-07-06 04:45:00 UTC" "2016-07-08 04:51:00 UTC"
#[3] "2016-07-06 05:10:00 UTC" "2016-07-06 05:10:00 UTC"
#[5] "2016-07-06 05:11:00 UTC" "2016-07-06 05:11:00 UTC"
dataset <- structure(list(Time = c("7/6/16 4:45", "7/8/16 4:51", "7/6/16 5:10",
"7/6/16 5:10", "7/6/16 5:11", "7/6/16 5:11"), Value = c(28L,
31L, 26L, 26L, 26L, 26L)), .Names = c("Time", "Value"), row.names = c(NA,
-6L), class = "data.frame")