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
dot products
3 messages · Alexander Shenkin, michael.weylandt at gmail.com (R. Michael Weylandt, Petr Savicky
as.matrix(df) %*% vec Michael
On Mar 7, 2012, at 3:14 PM, Alexander Shenkin <ashenkin at ufl.edu> wrote:
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
______________________________________________ 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.
On Wed, Mar 07, 2012 at 03:14:05PM -0500, Alexander Shenkin wrote:
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)
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.