r - 将数据转换为时间序列
问题描述
我有一个 csv 数据集,我想将其转换为时间序列数据以进行时间序列分析。数据看起来像这样(有额外的列,有 17,190 obs。):
temp interval
10.0 2014-04-01 00:00:00
10.0 2014-04-01 00:15:00
10.0 2014-04-01 00:30:00
10.0 2014-04-01 00:45:00
7.8 2014-04-01 01:00:00
间隔列的POSIXct
格式。
我将不胜感激有关将其转换为时间序列的代码的帮助。
谢谢
解决方案
如果您使用read_csv
in读取 csv,tidyverse
您将自动获得 POSIXct 类中的间隔列。
dput
以下:
library(tidyverse)
df <- structure(list(temp = c(10, 10, 10, 10, 7.8), interval = structure(c(1396310400,
1396311300, 1396312200, 1396313100, 1396314000), class = c("POSIXct",
"POSIXt"), tzone = "UTC")), class = c("spec_tbl_df", "tbl_df",
"tbl", "data.frame"), row.names = c(NA, -5L), spec = structure(list(
cols = list(temp = structure(list(), class = c("collector_double",
"collector")), interval = structure(list(format = ""), class = c("collector_datetime",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1), class = "col_spec"))
然后,您可以重新排序 cols 并转换为 zoo。
library(zoo)
df <- df %>%
select(interval, temp) %>%
zoo()
class(df)
[1] "zoo"
推荐阅读
- python - AttributeError:“str”对象在尝试使用 pandas from_records 创建数据框时没有属性“keys”
- docker - 在 GitLab 中构建和注册后,Apline Docker Image 未找到 AWS
- macos - 有没有办法在 AppleScript 中获取文件的完整路径?
- python - 使用数组偏移量计算 numpy 中的增量
- java - HibernateProxy.toString 延迟初始化异常
- encryption - Neo4j 服务器证书不受信任
- javascript - 反应引导模式不显示
- python - 如何从不起作用的 pip 安装 mkvirtualenvwrapper?
- android - 如何为 android ndk 项目使用预构建的 c++ 库
- sql - 根据另一个表中的数据,使用来自不同行的数据将行插入到同一个表中