[R] row-echelon form (was no subject)

John Fox jfox at mcmaster.ca
Thu Mar 4 14:52:29 CET 2004


Dear Spencer,

I'd be surprised if the qr decomposition as computed in R weren't a lot more
stable numerically, but I'm no expert. As well, I don't know how to get the
row-echelon form from the qr decomposition -- though I suspect that you or
someone else on the list is about to enlighten me.

Regards,
 John 

> -----Original Message-----
> From: Spencer Graves [mailto:spencer.graves at pdf.com] 
> Sent: Wednesday, March 03, 2004 10:45 PM
> To: John Fox
> Cc: 'Aimin Yan'; r-help at stat.math.ethz.ch
> Subject: Re: [R] row-echelon form (was no subject)
> 
> How does this compare with R of the qr decomposition?  spencer graves
> 
> John Fox wrote:
> 
> >Dear Amin,
> >
> >I have a function (created just for demonstration, and reproduced 
> >below) for finding the row-echelon form of a matrix. I'm 
> sure that many 
> >list members could produce something that's better numerically, but 
> >this should be OK at least for toy problems.
> >
> >John
> >
> >--------- snip -------------
> >
> >rowEchelonForm <- function(X, tol=.Machine$double.eps){
> >    if ((!is.matrix(X)) || (!is.numeric(X))) stop("argument 
> must be a 
> >numeric matrix")
> >    Z <- X
> >    for (i in 1:min(dim(X))){
> >        if (i > 1) Z[i-1,] <- 0
> >        which <- which.max(abs(Z[,i]))  # find maximum pivot 
> in current 
> >column at or below current row
> >        pivot <- X[which, i]
> >        if (abs(pivot) <= tol) next     # check for 0 pivot
> >        if (which > i) X[c(i,which),] <- X[c(which,i),]  # 
> exchange rows
> >        X[i,] <- X[i,]/pivot            # pivot
> >        row <- X[i,]                    
> >        X <- X - outer(X[,i], row)      # sweep
> >        X[i,] <- row                    # restore current row
> >        }
> >    n <- nrow(X)
> >    for (i in 1:n) if (max(abs(X[i,])) <= tol) X[c(i,n),] <- 
> X[c(n,i),]   #
> >0 rows to bottom
> >    X
> >    }
> >        
> >
> >  
> >
> >>-----Original Message-----
> >>From: r-help-bounces at stat.math.ethz.ch 
> >>[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Aimin Yan
> >>Sent: Wednesday, March 03, 2004 2:42 PM
> >>To: r-help at stat.math.ethz.ch
> >>Subject: [R] (no subject)
> >>
> >>how to produce a  Row Reduced Echelon Form for a matrix in R?
> >>Aimin Yan
> >>
> >>______________________________________________
> >>R-help at stat.math.ethz.ch mailing list
> >>https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> >>PLEASE do read the posting guide! 
> >>http://www.R-project.org/posting-guide.html
> >>    
> >>
> >
> >______________________________________________
> >R-help at stat.math.ethz.ch mailing list
> >https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> >PLEASE do read the posting guide! 
> >http://www.R-project.org/posting-guide.html
> >  
> >
>




More information about the R-help mailing list