Compute the spatial sign (a projection of a data vector to a
unit length circle). The spatial sign of a vector w
is
w /norm(w)
.
spatialSign(x, ...)# S3 method for default
spatialSign(x, na.rm = TRUE, ...)
# S3 method for matrix
spatialSign(x, na.rm = TRUE, ...)
# S3 method for data.frame
spatialSign(x, na.rm = TRUE, ...)
an object full of numeric data (which should probably be scaled). Factors are not allowed. This could be a vector, matrix or data frame.
Not currently used.
A logical; should missing data be removed when computing the norm of the vector?
A vector, matrix or data frame with the same dim names of the original data.
Serneels et al. Spatial sign preprocessing: a simple way to impart moderate robustness to multivariate estimators. J. Chem. Inf. Model (2006) vol. 46 (3) pp. 1402-1409
# NOT RUN { spatialSign(rnorm(5)) spatialSign(matrix(rnorm(12), ncol = 3)) # should fail since the fifth column is a factor try(spatialSign(iris), silent = TRUE) spatialSign(iris[,-5]) trellis.par.set(caretTheme()) featurePlot(iris[,-5], iris[,5], "pairs") featurePlot(spatialSign(scale(iris[,-5])), iris[,5], "pairs") # }