如何将列乘以矢量分量?

时间:2014-02-08 07:28:28

标签: r matrix vector dataframe matrix-multiplication

我有一个5列矩阵,我乘以5行向量。每列应乘以向量中的相应元素。我有data.frame和矩阵形式的信息 - 不确定是否重要的​​是做矩阵运算符。

这是今天花费至少6个小时的最后几分钟,所以我希望这个例子有意义。请原谅问题的简单性,我现在无法思考,而且时间紧迫。

实施例

Column 1 has 252 rows. 
Vector = [a,b,c,d,e].
Column 1[1:252] %*% Vector[a]

Column 2 has 252 rows. 
Column 2[1:252] %*% Vector [b]

Column 4 has 194 rows of "NA" or "0".  #I don't know if this changes anything, but thought it useful info.
Column 4[1:252] %*% Vector[d]

2 个答案:

答案 0 :(得分:0)

m<-matrix(runif(100),ncol=5) #your matrix
r<-c(1:5)               #your vector
t(apply(m,1,function(x)x*r))

答案 1 :(得分:0)

这应该比apply快。它依赖于矢量回收。

m<-matrix(rep(1,10),ncol=5) 
#     [,1] [,2] [,3] [,4] [,5]
#[1,]    1    1    1    1    1
#[2,]    1    1    1    1    1
r<-c(1:5)   
t(t(m)*r)
#     [,1] [,2] [,3] [,4] [,5]
#[1,]    1    2    3    4    5
#[2,]    1    2    3    4    5