使用R语言fpp3包的feat_stl函数报错问题及解决
使用fpp3包的
feat_stl提取时间序列特征时出现类型转换错误 问题描述
我在使用R语言构建时间序列模型,采用《Forecasting Principles and Practices(第三版)》配套的fpp3包提取时间序列特征。数据为tsibble格式,示例如下:
# A tsibble: 10 x 5 [1Q] # Key: Region, State, Purpose [1] Quarter Region State Purpose Trips <qtr> <chr> <chr> <chr> <dbl> 1 1998 Q1 Adelaide South Australia Business 135. 2 1998 Q2 Adelaide South Australia Business 110. 3 1998 Q3 Adelaide South Australia Business 166. 4 1998 Q4 Adelaide South Australia Business 127. 5 1999 Q1 Adelaide South Australia Business 137. 6 1999 Q2 Adelaide South Australia Business 200. 7 1999 Q3 Adelaide South Australia Business 169. 8 1999 Q4 Adelaide South Australia Business 134. 9 2000 Q1 Adelaide South Australia Business 154. 10 2000 Q2 Adelaide South Australia Business 169.
运行书中示例代码:
library(fpp3) tourism |> features(Trips, feat_stl)
返回错误:
Error in `lapply()`: ! Can't convert `X[[i]]`, a double vector, to a function. Run `rlang::last_trace()` to see where the error occurred.
更换多组时间序列数据均触发该错误,且已更新所有包及RStudio。
环境会话信息
sessioninfo::session_info() #> ─ Session info ─────────────────────────────────────────────────────────────── #> setting value #> version R version 4.3.2 (2023-10-31) #> os macOS Sonoma 14.1.1 #> system aarch64, darwin20 #> ui X11 #> language (EN) #> collate en_US.UTF-8 #> ctype en_US.UTF-8 #> tz America/Chicago #> date 2024-03-09 #> pandoc 3.1.1 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/ (via rmarkdown) #> #> ─ Packages ─────────────────────────────────────────────────────────────────── #> package * version date (UTC) lib source #> cli 3.6.2 2023-12-11 [1] CRAN (R 4.3.1) #> clipr 0.8.0 2022-02-22 [1] CRAN (R 4.3.0) #> digest 0.6.34 2024-01-11 [1] CRAN (R 4.3.1) #> evaluate 0.23 2023-11-01 [1] CRAN (R 4.3.1) #> fastmap 1.1.1 2023-02-24 [1] CRAN (R 4.3.0) #> fs 1.6.3 2023-07-20 [1] CRAN (R 4.3.0) #> glue 1.7.0 2024-01-09 [1] CRAN (R 4.3.1) #> htmltools 0.5.7 2023-11-03 [1] CRAN (R 4.3.1) #> knitr 1.45 2023-10-30 [1] CRAN (R 4.3.1) #> lifecycle 1.0.4 2023-11-07 [1] CRAN (R 4.3.1) #> magrittr 2.0.3 2022-03-30 [1] CRAN (R 4.3.0) #> purrr 1.0.2 2023-08-10 [1] CRAN (R 4.3.0) #> R.cache 0.16.0 2022-07-21 [1] CRAN (R 4.3.0) #> R.methodsS3 1.8.2 2022-06-13 [1] CRAN (R 4.3.0) #> R.oo 1.26.0 2024-01-24 [1] CRAN (R 4.3.1) #> R.utils 2.12.3 2023-11-18 [1] CRAN (R 4.3.1) #> reprex 2.1.0 2024-01-11 [1] CRAN (R 4.3.1) #> rlang 1.1.3 2024-01-10 [1] CRAN (R 4.3.1) #> rmarkdown 2.26 2024-03-05 [1] CRAN (R 4.3.1) #> rstudioapi 0.15.0 2023-07-07 [1] CRAN (R 4.3.0) #> sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.3.0) #> styler 1.10.2 2023-08-29 [1] CRAN (R 4.3.0) #> vctrs 0.6.5 2023-12-01 [1] CRAN (R 4.3.1) #> withr 3.0.0 2024-01-16 [1] CRAN (R 4.3.1) #> xfun 0.42 2024-02-08 [1] CRAN (R 4.3.1) #> yaml 2.3.8 2023-12-11 [1] CRAN (R 4.3.1) #> #> [1] /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/library #> #> ──────────────────────────────────────────────────────────────────────────────
解决方法
通过重启电脑解决了该问题。
可能原因分析
这种错误通常是R会话的临时状态异常导致:
- 内存中残留的全局变量、函数与fpp3包的内部函数产生命名冲突;
- 包加载过程中出现异常,导致部分函数未正确注册;
- 系统内存泄漏或资源占用过高,引发R环境的变量解析错误。
重启电脑会彻底清除所有残留的会话状态,重新初始化系统资源与R环境,从而解决这类临时性的环境冲突问题。
内容的提问来源于stack exchange,提问作者Russ Conte
相关产品推荐
相关产品推荐

