Неожиданный вывод, содержащий плюс, минус и буквы, произведенные путем вычитания одного столбца чисел из другого в R - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть 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)

enter image description here

Затем я применяю следующую математическую операцию, чтобы удалить трендовые и сезонные компоненты из исходного числового вектора:

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 минус значения $ тенденций и $ цикла?

Я рад предоставить любую дополнительную информацию, которая поможет сразу, просто спросите.

...