运行fpp3教材5.2章节示例代码时遇x[[1]]下标越界错误
解决R代码「下标越界」错误
错误翻译
你遇到的错误 Error in x[[1]] : subscript out of bounds 中文意思是下标越界,本质是函数无法找到预期的数据结构或有效数据。
问题原因与修复方案
针对你运行的fpp3包代码,主要有几个可能的问题和解决办法:
数据格式不符合要求:fpp3的建模函数要求输入是
tsibble格式(带时间索引的时序数据框),而非普通数据框/向量。先检查数据类型:class(Bricks)如果不是tsibble,用
as_tsibble()转换并指定时间索引列:Bricks <- as_tsibble(Bricks, index = 你的时间列名称)漂移项语法错误:原代码中
RW(Bricks - drift())写法错误,fpp3中带漂移的随机游走模型正确语法是RW(Bricks ~ drift()),原写法会导致函数无法解析变量,触发下标错误。过滤后数据无效:运行
filter(!is.na(Bricks))后可能丢失时间索引或数据为空,单独执行该语句检查输出,确保结果是包含时间索引和Bricks变量的有效tsibble。
修正后的完整代码示例
# 确保数据为tsibble格式 Bricks <- as_tsibble(Bricks, index = 你的时间列名) filter(Bricks, !is.na(Bricks)) %>% model( Seasonal_naive = SNAIVE(Bricks), Naive = NAIVE(Bricks), Drift = RW(Bricks ~ drift()), Mean = MEAN(Bricks) )
内容的提问来源于stack exchange,提问作者Shawn Pilusa
相关产品推荐
相关产品推荐

