The tf
package provides necessary infrastructure for
tidyfun
with minimal
dependencies – specifically: no tidyverse
-dependencies.
The goal of tidyfun
, in turn, is to provide accessible and
well-documented software that makes functional data analysis in R
easy – specifically data wrangling and exploratory analysis.
tf
includes definitions of new S3
data types for vectors of
functional data and associated methods. These tf
-vectors, with
subclasses tfd
and tfb
, use the
vctrs
-framework, can be operated on
using most standard functions (+
, mean()
, c()
, etc.) as well as
several new functions in tf
that implement operations specific for
functional data (tf_smooth
, tf_derive
, tf_integrate
).
Crucially, vectors of class tf
can be included in data frames
containing other variables, for simple and reliable data manipulation.
This approach is connected to the conceptual framework in functional
data analysis which assumes that complete functions are the unit of
observation. With tidyfun
and tf
, you can keep full curves alongside
numeric, factor, and other observations on the same subject in one data
frame.
You can install the released version of tf from CRAN with:
install.packages("tf")
And the development version from GitHub with:
# install.packages("pak")
pak::pak("tidyfun/tf")
tf
provides:
- new data types for representing functional data:
tfd
&tfb
- arithmetic operators and descriptive statistics for such data
- basic graphics functions for
tf
vectors - basic data wrangling for functional data: reshaping from list columns to wide to long and back, interpolating on different grids, filtering and zooming, etc.
Please see the tidyfun
website
for the full documentation including vignettes etc.
tf
provides new S3
-classes for functional
data,
either as raw data (class tfd
for tidy functional data) or in
basis representation (class tfb
for tidy functional basis data).
Such tf
-objects can be subsetted or subassigned, computed on and
summarized.
Almost all
- operators like
==
,+
or*
- math functions like
sum
,log
orabs
- and statistics functions like
mean
orsd
are defined for the vector classes defined in tf
(more).
The tf
objects are just glorified lists, so they work well as columns
in data frames. That makes it a lot easier to keep your other data and
functional measurements together in one object for preprocessing,
exploratory analysis and description. At the same time, these objects
actually behave like vectors of functions to some extent, i.e., they
can be evaluated on any point in their domain, they can be integrated or
differentiated, etc.
See
here
for more information on the operations defined for tf
vectors.
tf
includes functions tfd
and tfb
for converting matrices,
data frames, etc. to tf
vectors and back. More data wrangling methods
in a tidyverse
-inspired way and ggplot2
-geoms for functional data
are available in tidyfun
.
See
here
for details on getting data into (and out of) the tf
format.
Found a bug? Got a question? Missing some functionality?
Please let us know so we can make it better.