如何在fpp3包中重新配置tsibble对象的键?
解决tsibble选列后重新定义键的问题
在使用fpp3处理tsibble时序对象时,执行列选择操作后原键设置不会自动更新——这是因为tsibble会保留初始的键元数据。你可以通过以下两种方法重新定义键:
方法1:用key_set()直接修改键
key_set()是tsibble包提供的函数(fpp3依赖tsibble,可直接调用),能直接指定新的键列:
library(fpp3) # 选择需要的列 pbs_sub <- PBS |> select(Month, ATC1, Cost) # 重新设置键为ATC1 pbs_sub <- pbs_sub |> key_set(ATC1) # 验证键设置 key(pbs_sub)
方法2:用as_tsibble()重新构造时序对象
这种方式更直观,通过重新声明索引和键来生成新的tsibble:
pbs_sub <- PBS |> select(Month, ATC1, Cost) |> as_tsibble(index = Month, key = ATC1)
注意:如果你的select操作后仍保留了原键列(比如示例输出中仍有Concession、Type等列),可能是代码拼写错误或版本问题,先确保select确实选中了你需要的列,再进行键的重新设置。
内容的提问来源于stack exchange,提问作者Fam
相关产品推荐
相关产品推荐

