detrend.R
detrend <-
function( M, t, weight=rep(1,nrow(M)) )
{
Thin.col <-
function ( X, tol = 1e-06)
# Function to remove lin. dep. columns from a matrix
# (stolen from PD, existed at some time as stats:::Thin.col )
{
QR <- qr(X, tol = tol, LAPACK = FALSE)
X[, QR$pivot[seq(length = QR$rank)], drop = FALSE]
}
# Now detrend the matrix using the weighted inner product.
Thin.col( projection.ip( cbind( 1, t ), M , orth = TRUE, weight = weight ) )
}