Shortens, lengthens, filters for a consecutive range, changes the periodicity
and/or the status of missing values of a DTSg object.
# S3 method for class 'DTSg'
alter(
x,
from = first(self$values(reference = TRUE)[[".dateTime"]]),
to = last(self$values(reference = TRUE)[[".dateTime"]]),
by = self$periodicity,
rollback = TRUE,
clone = getOption("DTSgClone"),
na.status = self$na.status,
...
)A DTSg object (S3 method only).
A POSIXct timestamp in the same time zone as the time series
or a character string coercible to one. Specifies the new start of the time
series.
A POSIXct timestamp in the same time zone as the time series or
a character string coercible to one. Specifies the new end of the time
series.
Specifies the new periodicity in one of the ways the by argument
of seq.POSIXt can be specified. Must be specified for time series with
unrecognised periodicity. Time steps out of sync with the new periodicity
are dropped.
A logical specifying if a call to rollback shall be made
when appropriate.
A logical specifying if the object shall be modified in place or if a deep clone (copy) shall be made beforehand.
A character string. Either "explicit", which makes missing
timestamps explicit according to the recognised periodicity, or
"implicit", which removes timestamps with missing values on all value
columns. Please note that DTSg objects work best with explicitly
missing values.
Not used (S3 method only).
Returns a DTSg object.
# new DTSg object
x <- DTSg$new(values = flow)
# filter for the first two years
## R6 method
x$alter(
from = "2007-01-01",
to = "2008-12-31"
)$print()
#> Values:
#> .dateTime flow
#> <POSc> <num>
#> 1: 2007-01-01 9.540
#> 2: 2007-01-02 9.285
#> 3: 2007-01-03 8.940
#> 4: 2007-01-04 8.745
#> 5: 2007-01-05 8.490
#> ---
#> 727: 2008-12-27 18.180
#> 728: 2008-12-28 16.575
#> 729: 2008-12-29 13.695
#> 730: 2008-12-30 12.540
#> 731: 2008-12-31 11.940
#>
#> Aggregated: FALSE
#> Regular: TRUE
#> Periodicity: Time difference of 1 days
#> Missing values: explicit
#> Time zone: UTC
#> Timestamps: 731
## S3 method
print(alter(
x = x,
from = "2007-01-01",
to = "2008-12-31"
))
#> Values:
#> .dateTime flow
#> <POSc> <num>
#> 1: 2007-01-01 9.540
#> 2: 2007-01-02 9.285
#> 3: 2007-01-03 8.940
#> 4: 2007-01-04 8.745
#> 5: 2007-01-05 8.490
#> ---
#> 727: 2008-12-27 18.180
#> 728: 2008-12-28 16.575
#> 729: 2008-12-29 13.695
#> 730: 2008-12-30 12.540
#> 731: 2008-12-31 11.940
#>
#> Aggregated: FALSE
#> Regular: TRUE
#> Periodicity: Time difference of 1 days
#> Missing values: explicit
#> Time zone: UTC
#> Timestamps: 731
# change periodicity to one month
## R6 method
x$alter(by = "1 month")$print()
#> Values:
#> .dateTime flow
#> <POSc> <num>
#> 1: 2007-01-01 9.540
#> 2: 2007-02-01 11.055
#> 3: 2007-03-01 8.865
#> 4: 2007-04-01 16.770
#> 5: 2007-05-01 8.355
#> ---
#> 68: 2012-08-01 11.325
#> 69: 2012-09-01 7.365
#> 70: 2012-10-01 7.140
#> 71: 2012-11-01 10.890
#> 72: 2012-12-01 5.475
#>
#> Aggregated: FALSE
#> Regular: FALSE
#> Periodicity: 1 months
#> Min lag: Time difference of 28 days
#> Max lag: Time difference of 31 days
#> Missing values: explicit
#> Time zone: UTC
#> Timestamps: 72
## S3 method
print(alter(x = x, by = "1 month"))
#> Values:
#> .dateTime flow
#> <POSc> <num>
#> 1: 2007-01-01 9.540
#> 2: 2007-02-01 11.055
#> 3: 2007-03-01 8.865
#> 4: 2007-04-01 16.770
#> 5: 2007-05-01 8.355
#> ---
#> 68: 2012-08-01 11.325
#> 69: 2012-09-01 7.365
#> 70: 2012-10-01 7.140
#> 71: 2012-11-01 10.890
#> 72: 2012-12-01 5.475
#>
#> Aggregated: FALSE
#> Regular: FALSE
#> Periodicity: 1 months
#> Min lag: Time difference of 28 days
#> Max lag: Time difference of 31 days
#> Missing values: explicit
#> Time zone: UTC
#> Timestamps: 72