Re: [R] Newbie question about vector matrix multiplication

From: Dan Stanger <DStanger_at_eatonvance.com>
Date: Wed, 14 May 2008 15:48:02 -0400

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:spector_at_stat.Berkeley.EDU] 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.

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:spector_at_stat.Berkeley.EDU]
> 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
> spector_at_stat.berkeley.edu
>
>
>
> 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_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.
>>
>



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. Received on Wed 14 May 2008 - 23:07:12 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 14 May 2008 - 23:30:38 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive