我正在R中构建多个预测,我试图从预测输出中选择某些列。如下图所示:
> head(forData)
# A fable: 6 x 8 [1M]
# Key: .model [1]
.model Month ABC .mean DateVar PCT Ind1 Ind2
<chr> <mth> <dist> <dbl> <dttm> <dbl> <dbl> <dbl>
1 average 2021 Jul N(0.31, 0.0017) 0.315 2021-07-01 00:00:00 3.25 0 0
2 average 2021 Aug N(0.33, 0.0024) 0.328 2021-08-01 00:00:00 3.25 0 0
3 average 2021 Sep N(0.33, 0.0029) 0.329 2021-09-01 00:00:00 3.25 0 0
4 average 2021 Oct N(0.32, 0.0038) 0.322 2021-10-01 00:00:00 3.25 0 0
5 average 2021 Nov N(0.33, 0.0044) 0.328 2021-11-01 00:00:00 3.25 0 0
6 average 2021 Dec N(0.33, 0.0051) 0.326 2021-12-01 00:00:00 3.25 0 0
当我尝试使用dplyr选择任何列时,我得到以下错误:
> forData %>% select(Month, .mean)
Error: Can't subset columns that don't exist.
x Column `ABC` doesn't exist.
下面的代码给了我一个Month和。mean的向量,所以我假设名字是正确的,但我无法理解它给出的错误。
forData$Month
forData$.mean
我们可以在转换为tibble
后使用反引号进行选择
forData %>%
as_tibble %>%
select(Month, `.mean`)
这里的潜在问题(从错误中不清楚,我将尝试改进这一点)是<fable>
必须包含一个分布列。通过选择Month
和.mean
,您将删除所需的ABC
(分布)列。如果您不再需要该发行版,则需要转换为不同的数据类,这里有两个主要选项:
- 一个
<tsibble>
与as_tsibble()
(这需要时间列Month
,你仍然有) - 一个
<tibble>
和as_tibble()
(它对它包含的列没有要求)