

QR.Auxiliaries {base}                        R Documentation

_R_e_c_o_n_s_t_r_u_c_t _t_h_e _Q_, _R_, _o_r _X _M_a_t_r_i_c_e_s _f_r_o_m _a _Q_R _O_b_j_e_c_t

_D_e_s_c_r_i_p_t_i_o_n_:

     Returns the original matrix from which the object was
     constructed or the components of the decomposition.

_U_s_a_g_e_:

     qr.X(qrstr, complete = FALSE, ncol =)
     qr.Q(qrstr, complete = FALSE, Dvec = 1)
     qr.R(qrstr, complete = FALSE)

_A_r_g_u_m_e_n_t_s_:

   qrstr: object representing a QR decomposition.  This will
          typically have come from a previous call to `qr'
          or `lsfit'.

complete: logical expression of length 1.  Indicates whether
          an arbitrary  orthogonal completion of the Q or X
          matrices is to be made, or whether the R matrix is
          to be completed  by binding zero-value rows
          beneath the square upper triangle.

    ncol: integer in the range `1:nrow(qrstr$qr)'.  The num-
          ber of columns to be in the reconstructed X.  The
          default when `complete' is `FALSE' is the original
          X from which the qr object was constructed.  The
          default when `complete' is `TRUE' is a square
          matrix with the original X in the first `ncol(X)'
          columns and an arbitrary orthogonal completion
          (unitary completion in the complex case) in the
          remaining columns.

    Dvec: vector (not matrix) of diagonal values.  Each col-
          umn of the returned Q will be multiplied by the
          corresponding diagonal value.

_V_a_l_u_e_:

     `qr.X' returns X, the original matrix from which the qr
     object was constructed.  If `complete' is `TRUE' or the
     argument `ncol' is greater than `ncol(X)', additional
     columns from an arbitrary orthogonal (unitary) comple-
     tion of `X' are returned.

     `qr.Q' returns Q, the order-nrow(X) orthogonal (uni-
     tary) transformation represented by qrstr.  If `com-
     plete' is `TRUE', Q has `nrow(X)' columns.  If `com-
     plete' is `FALSE', Q has `ncol(X)' columns.  When
     `Dvec' is specified, each column of Q is multiplied by
     the corresponding value in `Dvec'.

     `qr.R' returns R, the upper triangular matrix such that
     `X == Q %*% R'.  The number of rows of R is `nrow(X)'
     or `ncol(X)', depending on whether `complete' is `TRUE'
     or `FALSE'.

_E_x_a_m_p_l_e_s_:

     data(LifeCycleSavings)
     p <- ncol(x <- LifeCycleSavings[,-1]) # not the `sr'
     qrstr <- qr(x)   # dim(x) == c(n,p)
     qrstr $ rank # = 4 = p
     Q <- qr.Q(qrstr) # dim(Q) == dim(x)
     R <- qr.R(qrstr) # dim(R) == ncol(x)
     X <- qr.X(qrstr) # X == x
     range(X - as.matrix(x))# ~ < 6e-12

     ## X == Q %*% R :
     all((1 - X /( Q %*% R))< 100*.Machine$double.eps)#TRUE

     dim(Qc <- qr.Q(qrstr, complete=TRUE)) # Square: dim(Qc) == rep(nrow(x),2)
     all((crossprod(Qc) - diag(nrow(x))) < 10*.Machine $double.eps)

     QD <- qr.Q(qrstr, D=1:p)      # QD == Q %*% diag(1:p)
     all(QD - Q %*% diag(1:p)  < 8* .Machine$double.eps)

     dim(Rc <- qr.R(qrstr, complete=TRUE)) # == dim(x)
     dim(Xc <- qr.X(qrstr, complete=TRUE)) # square: nrow(x) ^ 2
     all(Xc[,1:p] == X)

