Hi Phil, That solved the problem. Thanks, Dan Stanger Eaton Vance Management 200 State Street Boston, MA 02109 617 598 8261
-----Original Message----- From: Phil Spector [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 14, 2008 3:42 PM To: Dan Stanger Subject: RE: [R] Newbie question about vector matrix multiplication Dan - Most likely it's due to the fact that you used read.table for your weight vector, and it gave you a one row, three column data frame (as it should). Your weights are in the first row of that, so ww = as.numeric(w[1,]) will extract them as a vector, and outer(ww,ww,'*") * X should get what you want. - Phil On Wed, 14 May 2008, Dan Stanger wrote: > Hi Phil, > outer(w,w,"*") > Error in as.vector(X) %*% t(as.vector(Y)) : > requires numeric matrix/vector arguments > > There must be something about the object I am creating when I read my > weight vector in, which causes it to be treated improperly. > My file is: > \tX\tY\tZ > 1\t0.581841567\t0.215853099\t0.202305334 > where tabs have been replaced by \t for readability. > > Dan Stanger > Eaton Vance Management > 200 State Street > Boston, MA 02109 > 617 598 8261 > > -----Original Message----- > From: Phil Spector [mailto:[EMAIL PROTECTED] > Sent: Wednesday, May 14, 2008 3:27 PM > To: Dan Stanger > Subject: Re: [R] Newbie question about vector matrix multiplication > > Dan - > One possible way to do what you describe is > > outer(w,w,"*") * co > > - Phil Spector > Statistical Computing Facility > Department of Statistics > UC Berkeley > [EMAIL PROTECTED] > > > > On Wed, 14 May 2008, Dan Stanger wrote: > >> Hello All, >> >> I have a covariance matrix, generated by read.table, and cov: >> >> co<-cov(read.table("c:/r.x")) >> >> X Y Z >> >> X 0.0012517684 0.0002765438 0.0007887114 >> >> Y 0.0002765438 0.0002570286 0.0002117336 >> >> Z 0.0007887114 0.0002117336 0.0009168750 >> >> >> >> And a weight vector generated by >> >> w<- read.table("c:/r.weights") >> >> X Y Z >> >> 1 0.5818416 0.2158531 0.2023053 >> >> >> >> I want to compute the product of the matrix and vectors termwise to >> generate a 3x3 matrix, where m[i,j]=w[i]*co[i,j]*w[j]. >> >> 0.000423773 7.47216E-08 4.41255E-08 >> >> 7.47216E-08 1.96566E-11 4.29229E-11 >> >> 4.41255E-08 4.29229E-11 4.11045E-11 >> >> >> >> Is this possible without writing explicit loops? >> >> Thank you, >> >> Dan Stanger >> >> Eaton Vance Management >> 200 State Street >> Boston, MA 02109 >> 617 598 8261 >> >> >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help@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. >> > ______________________________________________ R-help@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.