首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >R预言错误: Dataframe必须有列'ds‘和'y’,分别包含日期和值

R预言错误: Dataframe必须有列'ds‘和'y’,分别包含日期和值
EN

Stack Overflow用户
提问于 2022-08-12 18:48:16
回答 1查看 48关注 0票数 0

我生成了这样一个数据框架:

代码语言:javascript
复制
> library(prophet)
> Date  <- rep(seq(as.Date("2010-01-01"), as.Date("2014-01-01"), "years"), 3)
> Group <- rep(LETTERS[1:3], each = 5)
> Value <- runif(15, 0, 100)
> Expln <- runif(15, 0, 100)
> 
> df <- data.frame(Date, Group, Value, Expln)
> 
> df
         Date Group     Value     Expln
1  2010-01-01     A 93.019346 39.446235
2  2011-01-01     A  3.389022 38.371961
3  2012-01-01     A  3.719541 93.922155
4  2013-01-01     A 11.267414 64.716674
5  2014-01-01     A 84.978091 18.808735
6  2010-01-01     B 13.723934 54.930282
7  2011-01-01     B 84.698500 52.628834
8  2012-01-01     B 23.743542 61.603183
9  2013-01-01     B 45.178280 72.345074
10 2014-01-01     B 80.779443 96.847733
11 2010-01-01     C 67.818529  9.020017
12 2011-01-01     C 46.020754 83.168086
13 2012-01-01     C 99.266430 61.400123
14 2013-01-01     C 17.218871 91.511166
15 2014-01-01     C  8.624025 39.995071

我尝试将prophet应用于单个组,它给出了一个错误:

代码语言:javascript
复制
> dfx = df[df$Group == "A",]
> dfx = dfx[c(1, 3, 4)]
> dfx
        Date     Value    Expln
1 2010-01-01 93.019346 39.44623
2 2011-01-01  3.389022 38.37196
3 2012-01-01  3.719541 93.92216
4 2013-01-01 11.267414 64.71667
5 2014-01-01 84.978091 18.80874
> m = prophet()
> m = add_regressor(m, 'Expln')
> m = fit.prophet(m, dfx)
Error in fit.prophet(m, dfx) : 
  Dataframe must have columns 'ds' and 'y' with the dates and values respectively.

为什么我会有这个错误?我怎么才能修好它呢?

EN

Stack Overflow用户

发布于 2022-08-12 19:27:22

如前所述,我需要将DateValue重命名为dsy

代码语言:javascript
复制
> library(prophet)
> Date  <- rep(seq(as.Date("2010-01-01"), as.Date("2014-01-01"), "years"), 3)
> Group <- rep(LETTERS[1:3], each = 5)
> Value <- runif(15, 0, 100)
> Expln <- runif(15, 0, 100)
> 
> df <- data.frame(ds = Date, Group, y = Value, Expln)
> 
> df
           ds Group         y    Expln
1  2010-01-01     A 44.907724 18.21944
2  2011-01-01     A  5.110549 88.22997
3  2012-01-01     A 41.627854 81.31806
4  2013-01-01     A 87.261591 31.91806
5  2014-01-01     A 82.931747 89.88972
6  2010-01-01     B 27.985192 53.98613
7  2011-01-01     B 82.574708 35.00410
8  2012-01-01     B 21.125819 56.96952
9  2013-01-01     B 12.400783 44.10640
10 2014-01-01     B 50.554773 49.89784
11 2010-01-01     C  2.086168 72.10425
12 2011-01-01     C 54.932624 58.57923
13 2012-01-01     C 52.649403 50.39760
14 2013-01-01     C 91.927291 56.70027
15 2014-01-01     C 25.771383 80.64624

> dfx = df[df$Group == "A",]
> dfx = dfx[c(1, 3, 4)]
> dfx
          ds         y    Expln
1 2010-01-01 44.907724 18.21944
2 2011-01-01  5.110549 88.22997
3 2012-01-01 41.627854 81.31806
4 2013-01-01 87.261591 31.91806
5 2014-01-01 82.931747 89.88972

> m <- prophet()
> m <- add_regressor(m = m, name = 'Expln')
> m <- fit.prophet(m = m, df = df)
Disabling weekly seasonality. Run prophet with weekly.seasonality=TRUE to override this.
Disabling daily seasonality. Run prophet with daily.seasonality=TRUE to override this.
n.changepoints greater than number of observations. Using 11
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73338564

复制
相关文章

相似问题

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