r语言 - FUN(X[[i]], ...) 中的错误:找不到对象'Retail Sales' |otext - 预测:原理与实践



我将复习otext Forecasting:Principles and Practice,在第7.1章中,作者编写了一个简单的代码:

us_change %>%
model(TSLM(Consumption ~ Income)) %>%
report()

us_change数据可以通过fpp3包在这里找到。

我正试图将此应用于我自己的数据集,使用圣路易斯零售销售和可支配收入的经济数据。我有一个2013年1月至2021年6月系列的窗口(以防有人想复制我所拥有的(。这是我的代码:

library(tidyverse)
library(readxl)
library(dplyr)
library(report)
library(tsibble)
library(fpp3)
library(fable)
data("us_change")
rs <- read_excel("Retail Sales.xlsx",
sheet = "Retail Sales")
rdpi <- read_excel("RDPI.xlsx",
sheet = "RDPI - Edit")
us_change %>%
model(TSLM(Consumption ~ Income)) %>%
report()
z <- cbind(rs,rdpi)
# both data sets had a "Date" column
z <- z[, !duplicated(colnames(z))]
z <- z %>%
as_tsibble(
key = c(`Retail Sales`,RDPI),
index = Date)
z <- z[order(z$Date),]
z %>%
model(TSLM(`Retail Sales` ~ RDPI)) %>%
report()

最后一行产生";FUN(X[[i]],…(中的错误:找不到对象"Retail Sales";。所以我运行

head(z)
class(us_change)
class(z)
class(us_change$Consumption)
class(z$`Retail Sales`)
"Retail Sales" %in% names(z)

其产生:

> head(z)
# A tsibble: 6 x 3 [?] <UTC>
# Key:       Retail Sales, RDPI [6]
Date                `Retail Sales`   RDPI
<dttm>                       <dbl>  <dbl>
1 2013-01-01 00:00:00         333663 12259.
2 2013-02-01 00:00:00         332471 12225.
3 2013-03-01 00:00:00         374171 12262.
4 2013-04-01 00:00:00         362978 12299 
5 2013-05-01 00:00:00         389709 12359.
6 2013-06-01 00:00:00         369355 12362.
> class(us_change)
[1] "tbl_ts"     "tbl_df"     "tbl"        "data.frame"
> class(z)
[1] "tbl_ts"     "tbl_df"     "tbl"        "data.frame"
> class(us_change$Consumption)
[1] "numeric"
> class(z$`Retail Sales`)
[1] "numeric"
> "Retail Sales" %in% names(z)
[1] TRUE

他们是同一个类,我验证了z中存在零售销售列。我遗漏了什么导致了这个错误?我额头上的皱纹比我想承认的要长,所以我很感激任何帮助,谢谢!

当您将Retail Sales设置为键时,它不再是一个选项。如果您不使用as_tsibble()设置任何参数,它将正常工作。

z <- z %>% as_tsibble()
z %>%
model(TSLM(`Retail Sales` ~ RDPI)) %>%
report()

最新更新