[R] Communative Matrix Multiplcation

Doran, Harold HDoran at air.org
Tue Aug 14 20:55:12 CEST 2012


No, not at all actually. I gave small enough matrices so you can eyeball it, but they are way off. It seems to be a problem (ahem, maybe even a bug) with some matrix operations in older version of R.

Newer R yields true for the comparison.

> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On
> Behalf Of Nordlund, Dan (DSHS/RDA)
> Sent: Tuesday, August 14, 2012 1:57 PM
> To: 'r-help at r-project.org'
> Subject: Re: [R] Communative Matrix Multiplcation
> 
> > -----Original Message-----
> > From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> > project.org] On Behalf Of Doran, Harold
> > Sent: Tuesday, August 14, 2012 10:27 AM
> > To: Doran, Harold; 'r-help at r-project.org'
> > Subject: Re: [R] Communative Matrix Multiplcation
> >
> > Meant to also add
> >
> > library(Matrix)
> >
> > for reproducing
> >
> > From: Doran, Harold
> > Sent: Tuesday, August 14, 2012 1:26 PM
> > To: r-help at r-project.org
> > Subject: Communative Matrix Multiplcation
> >
> > Friends
> >
> > I'm not seeing why the following occurs:
> >
> > > T1 <- (A1 - A2) %*% D
> > > T2 <- (A1 %*% D) - (A2 %*% D)
> > > identical(T1, T2)
> > [1] FALSE
> >
> > Harold
> >
> > > dput(A1)
> > new("dsCMatrix"
> >     , i = c(0L, 1L, 2L, 3L, 0L, 1L, 4L, 2L, 3L, 5L)
> >     , p = c(0L, 1L, 2L, 3L, 4L, 7L, 10L)
> >     , Dim = c(6L, 6L)
> >     , Dimnames = list(NULL, NULL)
> >     , x = c(5, 5, 5, 5, 5, 5, 10, 5, 5, 10)
> >     , uplo = "U"
> >     , factors = list()
> > )
> > > dput(A2)
> > new("dgeMatrix"
> >     , x = c(1.41313955042629, 1.23647532592053, 1.36413787785255,
> > 0.986247245800629, 2.64961487634682, 2.35038512365318,
> > 1.23647532592053, 1.55872699943971, 0.579347997632991,
> > 1.62544967700677, 2.79520232536024, 2.20479767463976,
> > 1.36413787785255, 0.579347997632991, 2.75106274522123,
> > 0.305451379293231, 1.94348587548554, 3.05651412451446,
> > 0.986247245800629, 1.62544967700677, 0.305451379293232,
> > 2.08285169789937, 2.6116969228074, 2.3883030771926, 2.64961487634682,
> > 2.79520232536024, 1.94348587548554, 2.6116969228074, 5.44481720170706,
> > 4.55518279829294, 2.35038512365318, 2.20479767463976,
> > 3.05651412451446, 2.3883030771926, 4.55518279829294, 5.44481720170706
> > )
> >     , Dim = c(6L, 6L)
> >     , Dimnames = list(NULL, NULL)
> >     , factors = list()
> > )
> > > dput(D)
> > new("ddiMatrix"
> >     , diag = "N"
> >     , Dim = c(6L, 6L)
> >     , Dimnames = list(NULL, NULL)
> >     , x = c(5, 5, 5, 5, 10, 10)
> > )
> >
> 
> Probably FAQ 7.31.  Try
> 
> all.equal(T1,T2)
> 
> 
> Hope this is helpful,
> 
> Dan
> 
> Daniel J. Nordlund
> Washington State Department of Social and Health Services Planning,
> Performance, and Accountability Research and Data Analysis Division Olympia,
> WA 98504-5204
> 
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list