coords: An S3 class to represent affine coordinate transforms

Description Usage Arguments Details Value Author(s) See Also Examples

View source: R/coords.R

Description

Perform affine coordinate transformations.

Usage

1
2
3
4
  coords(p, name = NULL, shift = 0)
  appendTrfm(trfm, op = c("diag", "orth"), val)
  toCoords(trfm, x)
  fromCoords(trfm, y, apply.shift = TRUE)

Arguments

p

The number of variables in the original data.

name

A short name for the coordinate transformation (optional).

shift

A value subtracted from the data as the first step of the coordinate transformation. Usually, this will be the mean of the data (optional).

trfm

An object of class coords.

op

The type of transformation to append.

val

Data for the transformation to append.

x

Data matrix, rows are observations, columns are variables.

y

Transformed data matrix, rows are observations, columns are variables.

apply.shift

Whether to apply the final shift of coordinates. Set this to FALSE in order to only apply the linear part of the transformation.

Details

The function coords() creates a new object representing an affine coordinate transformation. Initially, the object represents a shift by the amount shift, mapping p-dimensional vectors x to x-shift. The function appendTrfm() can then be used to modify the transformation. The optional argument name, if set, is used when printing objects of class coords.

The function toCoords() applies the affine transformation trfm to the data x. The data x must either be a vector of length trfm$p, in which case the result is a vector of length trfm$q, or a matrix with trfm$p columns, in which case the transformation is applied to each row of the matrix separately.

The function fromCoords() implements the inverse transform to toCoords(). The output always satisfies toCoords(trfm, fromCoords(trfm, y)) == y. If trfm$p == trfm$q, i.e. if the transformation is bijective, the fromCoords(trfm, toCoords(trfm, x)) == x also holds. The argument apply.shift can be set to false to apply only the linear part of the (inverse) transformation, leaving out the final shift.

The function appendTrfm() concatenates trfm with an additional, linear transformation and returns the result. The arguments op and val specify which kind of linear transformation to append. There are two choices for op:

The new transformation is applied after any other transformations already associated with trfm.

Value

An object of class coords, as a list with the following components:

p

the number of variables in the original data set

q

the number of variables in the transformed data set

shift

the affine part of the transformation

name

the name of the transformation

cmds

a representation of the transformation (internal use only)

Author(s)

Jochen Voss <voss@seehuhn.de>

See Also

standardize, whiten, PCA

Examples

1
2
3
  pc <- PCA(iris[, 1:4], n.comp = 3)
  toCoords(pc, c(5, 3, 4, 1))
  fromCoords(pc, c(1, 0, 0))

seehuhn/jvcoords documentation built on June 9, 2021, 3:06 p.m.