TractorTsbox

CRAN status GH Pages built R-CMD-check

Codecov test coverage CodeFactor lint

TractorTsbox est une boite à outils pour la manipulation des objets ts en R.

La motivation pour la création de ce package est le fait que pour créer un objet ts en R, il faut préciser la date sous le format \(AAAA PP\) (avec \(AAAA\) l’année en 4 chiffres et \(PP\) le numéro de la période).

Par exemple, pour désigner le mois de septembre 2024, on utilise c(2024, 9) et pour désigner le mois de janvier 2025 on peut écrire c(2025, 1) ou 2025.

Mais on peut aussi utiliser le time-units (\(AAAA + PP / f\) avec \(f\) la fréquence).

L’idée est d’uniformiser les dates avec un ensemble de fonction de conversion, de formattage mais aussi de modification des ts.

Installation

You can install the development version of TractorTsbox from GitHub with:

# install.packages("remotes")
remotes::install_github("TractorTom/TractorTsbox")

Usage

library("TractorTsbox")

Converting Dates

as_yyyytt(2019.75) # 4th quarter 2019
#> [1] 2019    4
as_yyyytt(2020) # 1st quarter 2020
#> [1] 2020    1
as_yyyytt(2022 + 1 / 4) # 2nd quarter 2022
#> [1] 2022    2
trim2mens(c(2019L, 4L)) # 4th quarter 2019 -> October 2019
#> [1] 2019   10
mens2trim(c(2020L, 11L)) # November 2020 -> 4th quarter 2020
#> [1] 2020    4

Manipulating Dates

previous_date_ts(c(2020L, 4L), frequency_ts = 4L, lag = 2L)
#> [1] 2020    2
next_date_ts(c(2020L, 4L), frequency_ts = 4L, lag = 2L)
#> [1] 2021    2
ts1 <- ts(c(NA, NA, NA, 1:10, NA), start = 2000, frequency = 12)
first_date(ts1)
#> [1] 2000    4

Data Retrieval and Modification

ts1 <- ts(1:100, start = 2012L, frequency = 12L)
get_value_ts(series = ts1, date_from = c(2015L, 7L), date_to = c(2018L, 6L))
#>  [1] 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
#> [26] 68 69 70 71 72 73 74 75 76 77 78
set_value_ts(series = ev_pib, date_ts = c(2021L, 2L), replacement = c(1, 2, 3))
#>               Qtr1          Qtr2          Qtr3          Qtr4
#> 1970            NA            NA            NA            NA
#> 1971            NA            NA            NA            NA
#> 1972            NA            NA            NA            NA
#> 1973            NA            NA            NA            NA
#> 1974            NA            NA            NA            NA
#> 1975            NA            NA            NA            NA
#> 1976            NA            NA            NA            NA
#> 1977            NA            NA            NA            NA
#> 1978            NA            NA            NA            NA
#> 1979            NA            NA            NA            NA
#> 1980            NA  -0.552712174  -0.086754850  -0.130764175
#> 1981   0.436797694   0.663555818   0.655755678   0.465977515
#> 1982   0.892058545   0.662204954   0.047370440   0.507157219
#> 1983   0.581233329  -0.042548981   0.077874681   0.583935348
#> 1984   0.619554314   0.363253711   0.462243113   0.288218891
#> 1985   0.123719710   0.631349292   0.756575266   0.327524429
#> 1986   0.357772133   1.122129272   0.326669036   0.370966439
#> 1987   0.251659155   1.144598588   0.680758053   1.694026185
#> 1988   1.231391234   0.593185145   1.302640709   1.065361026
#> 1989   1.260037978   0.825806743   1.075064005   1.523944130
#> 1990   0.517826385   0.377746880   0.459923112   0.366254003
#> 1991  -0.156699858   0.309591699   0.289346425   0.496079715
#> 1992   0.967856839  -0.057920191   0.028450027  -0.223321860
#> 1993  -0.556650909   0.039547303   0.133452547   0.269728893
#> 1994   0.725093411   1.095551160   0.539244435   0.886607198
#> 1995   0.569503181   0.478767111   0.081524147   0.164939274
#> 1996   0.631394447   0.165893251   0.621382576   0.125750143
#> 1997   0.302664793   1.148738446   0.785645124   1.092788520
#> 1998   0.838700519   0.933602781   0.685747514   0.764421531
#> 1999   0.504428016   0.825984551   1.222733930   1.401265205
#> 2000   0.909693692   0.987402187   0.624501289   0.812645817
#> 2001   0.547797973   0.184046964   0.272336544   0.026816438
#> 2002   0.372541324   0.461330701   0.418587141  -0.054011578
#> 2003   0.203235664  -0.218262571   0.676991816   0.717703853
#> 2004   0.939180093   0.645697044   0.258638250   0.744155119
#> 2005   0.269714193   0.198490900   0.500009124   0.776948575
#> 2006   0.754542470   1.015941519   0.013572258   0.786297420
#> 2007   0.740940215   0.773456477   0.351755993   0.225637214
#> 2008   0.395791727  -0.412315400  -0.280602493  -1.467532567
#> 2009  -1.632375943  -0.101454578   0.160750061   0.695136221
#> 2010   0.368232308   0.507493101   0.645610703   0.704301595
#> 2011   0.997901680   0.027941934   0.367134262   0.173618343
#> 2012   0.093557392  -0.157293866   0.191962538  -0.077204189
#> 2013  -0.001133455   0.655711072   0.012011561   0.475525630
#> 2014   0.084980333   0.118498226   0.504372721   0.081229345
#> 2015   0.489945372   0.007744848   0.332080732   0.139118865
#> 2016   0.636268205  -0.161024723   0.198728721   0.544690904
#> 2017   0.816780164   0.820053915   0.622880698   0.828202860
#> 2018   0.048700300   0.382559370   0.366396552   0.701164421
#> 2019   0.665798334   0.604099134   0.011971808  -0.400152537
#> 2020  -5.647477753 -13.443145590  18.555378962  -1.118046566
#> 2021   0.156198162   1.000000000   2.000000000   3.000000000
#> 2022  -0.047254400            NA            NA
trim_1 <- stats::ts(rep(1, 4), start = 2021, frequency = 4)
combine2ts(ev_pib, trim_1)
#>               Qtr1          Qtr2          Qtr3          Qtr4
#> 1970            NA            NA            NA            NA
#> 1971            NA            NA            NA            NA
#> 1972            NA            NA            NA            NA
#> 1973            NA            NA            NA            NA
#> 1974            NA            NA            NA            NA
#> 1975            NA            NA            NA            NA
#> 1976            NA            NA            NA            NA
#> 1977            NA            NA            NA            NA
#> 1978            NA            NA            NA            NA
#> 1979            NA            NA            NA            NA
#> 1980            NA  -0.552712174  -0.086754850  -0.130764175
#> 1981   0.436797694   0.663555818   0.655755678   0.465977515
#> 1982   0.892058545   0.662204954   0.047370440   0.507157219
#> 1983   0.581233329  -0.042548981   0.077874681   0.583935348
#> 1984   0.619554314   0.363253711   0.462243113   0.288218891
#> 1985   0.123719710   0.631349292   0.756575266   0.327524429
#> 1986   0.357772133   1.122129272   0.326669036   0.370966439
#> 1987   0.251659155   1.144598588   0.680758053   1.694026185
#> 1988   1.231391234   0.593185145   1.302640709   1.065361026
#> 1989   1.260037978   0.825806743   1.075064005   1.523944130
#> 1990   0.517826385   0.377746880   0.459923112   0.366254003
#> 1991  -0.156699858   0.309591699   0.289346425   0.496079715
#> 1992   0.967856839  -0.057920191   0.028450027  -0.223321860
#> 1993  -0.556650909   0.039547303   0.133452547   0.269728893
#> 1994   0.725093411   1.095551160   0.539244435   0.886607198
#> 1995   0.569503181   0.478767111   0.081524147   0.164939274
#> 1996   0.631394447   0.165893251   0.621382576   0.125750143
#> 1997   0.302664793   1.148738446   0.785645124   1.092788520
#> 1998   0.838700519   0.933602781   0.685747514   0.764421531
#> 1999   0.504428016   0.825984551   1.222733930   1.401265205
#> 2000   0.909693692   0.987402187   0.624501289   0.812645817
#> 2001   0.547797973   0.184046964   0.272336544   0.026816438
#> 2002   0.372541324   0.461330701   0.418587141  -0.054011578
#> 2003   0.203235664  -0.218262571   0.676991816   0.717703853
#> 2004   0.939180093   0.645697044   0.258638250   0.744155119
#> 2005   0.269714193   0.198490900   0.500009124   0.776948575
#> 2006   0.754542470   1.015941519   0.013572258   0.786297420
#> 2007   0.740940215   0.773456477   0.351755993   0.225637214
#> 2008   0.395791727  -0.412315400  -0.280602493  -1.467532567
#> 2009  -1.632375943  -0.101454578   0.160750061   0.695136221
#> 2010   0.368232308   0.507493101   0.645610703   0.704301595
#> 2011   0.997901680   0.027941934   0.367134262   0.173618343
#> 2012   0.093557392  -0.157293866   0.191962538  -0.077204189
#> 2013  -0.001133455   0.655711072   0.012011561   0.475525630
#> 2014   0.084980333   0.118498226   0.504372721   0.081229345
#> 2015   0.489945372   0.007744848   0.332080732   0.139118865
#> 2016   0.636268205  -0.161024723   0.198728721   0.544690904
#> 2017   0.816780164   0.820053915   0.622880698   0.828202860
#> 2018   0.048700300   0.382559370   0.366396552   0.701164421
#> 2019   0.665798334   0.604099134   0.011971808  -0.400152537
#> 2020  -5.647477753 -13.443145590  18.555378962  -1.118046566
#> 2021   1.000000000   1.000000000   1.000000000   1.000000000
#> 2022  -0.047254400            NA            NA
ts1 <- ts(data = c(rep(NA_integer_, 3L), 1L:10L, rep(NA_integer_, 3L)), start = 2020, frequency = 12)
x <- rep(3L, 2L)
extend_ts(series = ts1, replacement = x)
#> Warning: extending time series when replacing values
#>      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
#> 2020  NA  NA  NA   1   2   3   4   5   6   7   8   9
#> 2021  10   3   3

Formatting and Labels

normalize_date_ts(c(2020L, 0L), frequency_ts = 4L) # 4th quarter of 2019
#> Warning in assert_date_ts(x = date_ts, frequency_ts, add = coll, .var.name =
#> "date_ts"): Assertion on 'period' failed: Element 1 is not >= 1.
#> [1] 2019    4
normalize_date_ts(c(2020L, 0L), frequency_ts = 4L, test = FALSE) # 4th quarter of 2019
#> [1] 2019    4
libelles(date_ts = c(2019L, 10L), frequency_ts = 12L, n = 9L)
#> [1] "Oct 2019" "Nov 2019" "Dec 2019" "Jan 2020" "Feb 2020" "Mar 2020" "Apr 2020"
#> [8] "May 2020" "Jun 2020"

Data Information

ev_pib
#>               Qtr1          Qtr2          Qtr3          Qtr4
#> 1970            NA            NA            NA            NA
#> 1971            NA            NA            NA            NA
#> 1972            NA            NA            NA            NA
#> 1973            NA            NA            NA            NA
#> 1974            NA            NA            NA            NA
#> 1975            NA            NA            NA            NA
#> 1976            NA            NA            NA            NA
#> 1977            NA            NA            NA            NA
#> 1978            NA            NA            NA            NA
#> 1979            NA            NA            NA            NA
#> 1980            NA  -0.552712174  -0.086754850  -0.130764175
#> 1981   0.436797694   0.663555818   0.655755678   0.465977515
#> 1982   0.892058545   0.662204954   0.047370440   0.507157219
#> 1983   0.581233329  -0.042548981   0.077874681   0.583935348
#> 1984   0.619554314   0.363253711   0.462243113   0.288218891
#> 1985   0.123719710   0.631349292   0.756575266   0.327524429
#> 1986   0.357772133   1.122129272   0.326669036   0.370966439
#> 1987   0.251659155   1.144598588   0.680758053   1.694026185
#> 1988   1.231391234   0.593185145   1.302640709   1.065361026
#> 1989   1.260037978   0.825806743   1.075064005   1.523944130
#> 1990   0.517826385   0.377746880   0.459923112   0.366254003
#> 1991  -0.156699858   0.309591699   0.289346425   0.496079715
#> 1992   0.967856839  -0.057920191   0.028450027  -0.223321860
#> 1993  -0.556650909   0.039547303   0.133452547   0.269728893
#> 1994   0.725093411   1.095551160   0.539244435   0.886607198
#> 1995   0.569503181   0.478767111   0.081524147   0.164939274
#> 1996   0.631394447   0.165893251   0.621382576   0.125750143
#> 1997   0.302664793   1.148738446   0.785645124   1.092788520
#> 1998   0.838700519   0.933602781   0.685747514   0.764421531
#> 1999   0.504428016   0.825984551   1.222733930   1.401265205
#> 2000   0.909693692   0.987402187   0.624501289   0.812645817
#> 2001   0.547797973   0.184046964   0.272336544   0.026816438
#> 2002   0.372541324   0.461330701   0.418587141  -0.054011578
#> 2003   0.203235664  -0.218262571   0.676991816   0.717703853
#> 2004   0.939180093   0.645697044   0.258638250   0.744155119
#> 2005   0.269714193   0.198490900   0.500009124   0.776948575
#> 2006   0.754542470   1.015941519   0.013572258   0.786297420
#> 2007   0.740940215   0.773456477   0.351755993   0.225637214
#> 2008   0.395791727  -0.412315400  -0.280602493  -1.467532567
#> 2009  -1.632375943  -0.101454578   0.160750061   0.695136221
#> 2010   0.368232308   0.507493101   0.645610703   0.704301595
#> 2011   0.997901680   0.027941934   0.367134262   0.173618343
#> 2012   0.093557392  -0.157293866   0.191962538  -0.077204189
#> 2013  -0.001133455   0.655711072   0.012011561   0.475525630
#> 2014   0.084980333   0.118498226   0.504372721   0.081229345
#> 2015   0.489945372   0.007744848   0.332080732   0.139118865
#> 2016   0.636268205  -0.161024723   0.198728721   0.544690904
#> 2017   0.816780164   0.820053915   0.622880698   0.828202860
#> 2018   0.048700300   0.382559370   0.366396552   0.701164421
#> 2019   0.665798334   0.604099134   0.011971808  -0.400152537
#> 2020  -5.647477753 -13.443145590  18.555378962  -1.118046566
#> 2021   0.156198162   1.460529708   3.017719839   0.779781860
#> 2022  -0.047254400            NA            NA