Univariate time series operations that follow an opinionated design. The main principle of transx is to keep the number of observations the same. Operations that reduce this number have to fill the observations gap.

Design Principles

  • The input and the output will always be a numeric vector.
  • The output retains the same length as the input.
  • Uses a filling logic, where fill is used to keep the length of vector identical.


  • na.rm: Which setsna.rm = TRUE by default when needed to.
  • keep.attrs: Which after manipulations the new series would retain the same attributes.
  • display: Display informative message for the transformation procedure.


You can install the development version from Github.



This is a basic example with lagged and leading values. fill can be achieved either by value or by function. The function can be a build-in function such as mean, or median, that fill-in by a single values, or it can be of the fill_* family such as fill_locf and fill_nocb that consider the location of the observations before performing the filling.


x <- c(5,3,2,2,5)
#> [1] NA  5  3  2  2
lagx(x, fill = 1)
#> [1] 1 5 3 2 2
lagx(x, fill = mean)
#> [1] 3 5 3 2 2
lagx(x, fill = fill_nocb)
#> [1] 5 5 3 2 2

Code of Conduct

Please note that the transx project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.