【问题标题】:why a dataframe with daily collected data is not a time-series data?为什么每天收集数据的数据框不是时间序列数据?
【发布时间】:2019-03-29 12:18:30
【问题描述】:

我是 R 软件的初学者。我至少知道基础知识,但是数据类型有问题。所以我的数据是2000-2005年的天气变化数据。当我写作时 类(测试数据) 它将类显示为数据框而不是时间序列。所以我的问题是为什么带有日期和月份的数据框不是时间序列数据?

附:数据显示了 2000-2005 年每一天的测量结果。

数据看起来有点像这样:

date        respadmissions   NO2 
1.1.2001         2            5      
1.2.2001         4            6
1.3.2001         5            7
1.4.2001         6            8

【问题讨论】:

  • 时间序列是 R 中完全不同的类结构。您很可能只有一个包含日期列和值列的数据框。您能否提供一小部分数据或与您的数据相似的数据?
  • 一个 data.frame 可以转换成一个时间序列,但不一定是因为有日期或日期/时间列。检查时间序列上的CRAN Task View

标签: r time-series


【解决方案1】:

正如 cmets 中所指出的:timeseries 是 R 中的一种数据结构,有自己的参数和细节。您的数据不是时间序列对象,因为您已将其指定为 dataframe,这是一个不同的结构。

您可以使用ts() 函数将数据存储为时间序列(或将数据帧转换为时间序列对象),如下所示:

# first making the dataframe
dat <- structure(list(NO2 = c(2,4,5,6),  respadmissions = c(2,4,5,6)), class = "data.frame", row.names = c(NA, -4L))

# making the date vector and adding it to the dataframe
dates <- c("01/01/2001", "02/01/2001","03/01/2001","04/01/2001")
ds <- as.Date(dates, "%m/%d/%Y")
dat$date <- ds

# making a time-series object with NO2-data
time_ser<-ts(matrix(dat$NO2,nrow=4),start=c(2001-01-01),frequency=1)  

【讨论】:

  • 只是为了澄清,这是我要使用的辅助数据。所以我收到了这样的数据,我必须应用时间序列分析。数据是否必须是 R 中的“数据框”才能应用时间序列分析?
  • 时间序列对象实际上需要vectormatrix。在答案中,代码将 dataframe(这是您所拥有的)转换为 matrix(这是需要的)以获取 timeseries 对象(这是您想要的)。
  • 我回答你的问题了吗?
猜你喜欢
  • 1970-01-01
  • 2021-02-20
  • 2021-09-09
  • 1970-01-01
  • 2016-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-17
相关资源
最近更新 更多