У меня есть data.frame, содержащий вектор числовых значений (prcp_log).
waterdate PRCP prcp_log
<date> <dbl> <dbl>
1 2007-10-01 0 0
2 2007-10-02 0.02 0.0198
3 2007-10-03 0.31 0.270
4 2007-10-04 1.8 1.03
5 2007-10-05 0.03 0.0296
6 2007-10-06 0.19 0.174
Затем я передаю эти данные через полосовой фильтр Christiano-Fitzgerald, используя следующую команду из пакета mfilter.
library(mFilter)
US1ORLA0076_cffilter <- cffilter(US1ORLA0076$prcp_log,pl=180,pu=365,root=FALSE,drift=FALSE,
type=c("asymmetric"),
nfix=NULL,theta=1)
Создает объект S3, содержащий, помимо прочего, вектор значений "тренда" и вектор значений "цикла", например:
head(US1ORLA0076_cffilter$trend)
[,1]
[1,] 0.05439408
[2,] 0.07275321
[3,] 0.32150292
[4,] 1.07958965
[5,] 0.07799329
[6,] 0.22082246
head(US1ORLA0076_cffilter$cycle)
[,1]
[1,] -0.05439408
[2,] -0.05295058
[3,] -0.05147578
[4,] -0.04997023
[5,] -0.04843449
[6,] -0.04686915
Подготовленный:
plot(US1ORLA0076_cffilter)
Затем я применяю следующую математическую операцию, чтобы удалить трендовые и сезонные компоненты из исходного числового вектора:
US1ORLA0076$decomp <- ((US1ORLA0076$prcp_log - US1ORLA0076_cffilter$trend) - US1ORLA0076_cffilter$cycle)
, который создает выходные данные значений, которые включают неожиданные элементы, такие как тире и буквы.
head(US1ORLA0076$decomp)
[,1]
[1,] 0.000000e+00
[2,] 0.000000e+00
[3,] 1.387779e-17
[4,] -2.775558e-17
[5,] 0.000000e+00
[6,] 6.938894e-18
Что здесь произошло? Что означают эти дополнительные символы? Как выполнить эту математическую операцию и получить желаемый результат, равный $ log_prcp минус значения $ тенденций и $ цикла?
Я рад предоставить любую дополнительную информацию, которая поможет сразу, просто спросите.