首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将向量设置为月、年、tsibble

将向量设置为月、年、tsibble
EN

Stack Overflow用户
提问于 2019-11-11 02:47:22
回答 1查看 128关注 0票数 1

我正在努力将一个简单的月份和年份格式转换为tsibble。我有这个数据集,

代码语言:javascript
复制
a <- c(12014, 22014, 32014, 42014, 52014, 62014, 72014, 82014, 92014, 102014, 112014, 122014, 
       12015, 22015, 32015, 42015, 52015, 62015, 72015, 82015, 92015, 102015, 112015, 122015,
       12014, 22014, 32014, 42014, 52014, 62014, 72014, 82014, 122014)
b <- rnorm(33, mean = 12, sd = 8)

dt <- data.frame(a, b)

这里的向量a应该是时间变量。它不一定是不间断的。这意味着我有可能隐含了缺失值。

代码语言:javascript
复制
as.Date(dt$a, origin = "01-1901")
library(tidyverse)
as_tsibble(dt)

我所理解的是,首先我需要将数据转换为'as.Date‘,然后将数据转换为tsibble。

我收到以下错误消息,

代码语言:javascript
复制
> as.Date(dt$a, origin = "01-1901")
Error in charToDate(x) : 
  character string is not in a standard unambiguous format

有没有人能帮我找一下周围的路?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-11 03:26:24

我们可以在开始时填充0,使用as.yearmon将其转换为yearmon,并使用as.Date将其强制为'Date‘类

代码语言:javascript
复制
library(zoo)
dt$a <- as.Date(as.yearmon(sprintf("%06d", dt$a), "%m%Y"))
dt$a
#[1] "2014-01-01" "2014-02-01" "2014-03-01" "2014-04-01" "2014-05-01" "2014-06-01" "2014-07-01" "2014-08-01" "2014-09-01" "2014-10-01" "2014-11-01"
#[12] "2014-12-01" "2015-01-01" "2015-02-01" "2015-03-01" "2015-04-01" "2015-05-01" "2015-06-01" "2015-07-01" "2015-08-01" "2015-09-01" "2015-10-01"
#[23] "2015-11-01" "2015-12-01" "2014-01-01" "2014-02-01" "2014-03-01" "2014-04-01" "2014-05-01" "2014-06-01" "2014-07-01" "2014-08-01" "2014-12-01"

注意:当我们转换为tsibble时,请确保删除重复的日期

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58791867

复制
相关文章

相似问题

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