r - 每小时时间序列绘图

标签 r xts

我正在尝试绘制以下每小时数据。如何将数据更改为时间序列对象?正在尝试使用 xts 包,但收到错误消息:

new_data <- structure(list(starttime = c("01.01.2015 00:00", "01.01.2015 01:00", 
"01.01.2015 02:00", "01.01.2015 03:00", "01.01.2015 04:00", "01.01.2015 05:00"
), Fossil = c(435, 434, 435, 436, 436, 436)), .Names = c("starttime", 
"Fossil"), row.names = c(NA, -6L), class = "data.frame")

str(new_data)

$ starttime: chr  "01.01.2015 00:00" "01.01.2015 01:00" "01.01.2015 02:00"  "01.01.2015 03:00" ...
$ Fossil   : int  435 434 435 436 436 436 434 436 415 331

 head(new_data)
 starttime         Fossil
1 01.01.2015 00:00    435
2 01.01.2015 01:00    434
3 01.01.2015 02:00    435
4 01.01.2015 03:00    436
5 01.01.2015 04:00    436
6 01.01.2015 05:00    436

hnew_dataxts <- as.xts(x=new_data[,"Fossil"], order.by=new_data[,"starttime"])
colenames(hnew_dataxts) <- colnames(new_data)[-1]

    Error in xts(x, order.by = order.by, frequency = frequency, .CLASS = "integer",  : 
order.by requires an appropriate time-based object

最佳答案

您需要首先将 starttime 列转换为日期/时间对象。您可以使用strptime函数。

new_data$starttime <- strptime(new_data$starttime, "%d.%m.%Y %H:%M")
hnew_dataxts <- xts(new_data[,"Fossil"], order.by=new_data[,"starttime"])

plot(hnew_dataxts)

enter image description here

关于r - 每小时时间序列绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33386065/

相关文章:

r - 在 R 3.4.3 和 R 3.6.0 之间更改存储在 data.table 中的闭包行为

r - 准备要传递给curlPerform的字符串

r - 导入 mgcv 失败,因为找不到 Rlapack.dll

r - 如何更有效地重新格式化 R 中的 xts 数据?

r - 为日期范围和时间范围子集 xts 系列

r - 使用 np 包的 R 中二维概率密度函数的一维条件切片

r - 使用 sprintf 时跳过 R 中的 %

r - 正确地将 lapply/apply 应用于 xts 对象并应用 lag.xts - 将结果作为 xts 对象返回

r - 按 R 中指定的不规则间隔拆分 xts 对象

r - 使用 xts 创建循环