首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何格式化数据以使其成为R中的时间序列数据

如何格式化数据以使其成为R中的时间序列数据
EN

Stack Overflow用户
提问于 2017-03-22 21:06:30
回答 1查看 194关注 0票数 -3

我想对以下数据进行时间序列分析,但无法将其转换为时间序列数据,可以从给定的链接https://datamarket.com/data/set/22ox/monthly-milk-production-pounds-per-cow-jan-62-dec-75#!ds=22ox&display=line下载数据

我尝试过使用str_split_fixed函数将其分成两列,但在拆分后将其重新组合为时间序列是一个问题

这是我尝试过的:

代码语言:javascript
复制
#Convert it into Time series
#Train Data
ds.ts<-ts(ds$V2,start = c(1962,1),end = c(1974,12),frequency = 12)
ds.ts
plot(ds.ts)
plot(decompose(ds.ts))
#Test Data
ts.1975<-ts(ds$V2,start=c(1975,1),end=c(1975,12),frequency = 12)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-22 21:15:51

我导出为.tsv (制表符分隔),但.csv应该也可以。然后读取data.table并使用substr提取前4位数字作为年份(并转换为integer),最后2位数字提取为月份:

代码语言:javascript
复制
library(data.table)
dt <- fread("~/Downloads/monthly-milk-production-pounds-p.tsv")
dt[, ":="(
  year = as.integer(substr(Month, start = 1, stop = 4)),
  month = as.integer(substr(Month, start = 6, stop = 7)))]

>dt
       Month Monthly milk production: pounds per cow. Jan 62 ? Dec 75 year month
  1: 1962-01                                                      589 1962     1
  2: 1962-02                                                      561 1962     2
  3: 1962-03                                                      640 1962     3
  4: 1962-04                                                      656 1962     4
  5: 1962-05                                                      727 1962     5

根据AkselA的评论更新了

要获取时间序列,请按照AkselA的建议使用as.Date

代码语言:javascript
复制
library(data.table)
dt <- fread("~/Downloads/monthly-milk-production-pounds-p.tsv")
dt[, date_time := as.Date(paste0(Month, "-01"), format="%Y-%m-%d")]

>dt
       Month Monthly milk production: pounds per cow. Jan 62 ? Dec 75  date_time
  1: 1962-01                                                      589 1962-01-01
  2: 1962-02                                                      561 1962-02-01
  3: 1962-03                                                      640 1962-03-01
  4: 1962-04                                                      656 1962-04-01
  5: 1962-05                                                      727 1962-05-01
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42952528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档