将向量设置为月年小插曲

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

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,122014)
b <- rnorm(33,mean = 12,sd = 8)

dt <- data.frame(a,b)

此处,向量a应该是时间变量。它不一定是完整的。这意味着我可能隐含缺少价值。

as.Date(dt$a,origin = "01-1901")
library(tidyverse)
as_tsibble(dt)

我了解的是,首先我需要将数据转换为“ as.Date”,然后将数据转换为tsibble。

我收到以下错误消息,

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

有没有人可以帮助我找到解决方法?

rus_test 回答:将向量设置为月年小插曲

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

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时,请确保删除重复的日期

本文链接:https://www.f2er.com/3127997.html

大家都在问