Skip to content

dot products

3 messages · Alexander Shenkin, michael.weylandt at gmail.com (R. Michael Weylandt, Petr Savicky

#
Hello,

I need to take a dot product of each row of a dataframe and a vector.
The number of columns will be dynamic.  The way I've been doing it so
far is contorted.  Is there a better way?

    dotproduct <- function(dataf, v2) {
        apply(t(t(as.matrix(a)) * v2),1,sum) #contorted!
    }

    df = data.frame(a=c(1,2,3),b=c(4,5,6))
    vec = c(4,5)
    dotproduct(df, vec)


thanks,
allie
as.matrix(df) %*% vec

Michael
On Mar 7, 2012, at 3:14 PM, Alexander Shenkin <ashenkin at ufl.edu> wrote:

            
#
On Wed, Mar 07, 2012 at 03:14:05PM -0500, Alexander Shenkin wrote:
Hi.

If i understand correctly, then the following should
be equivalent

  as.matrix(df) %*% cbind(vec)

       [,1]
  [1,]   24
  [2,]   33
  [3,]   42

Hope this helps.

Petr Savicky.