【问题标题】:How to multiply a column by vector components? [closed]如何将列乘以向量分量? [关闭]
【发布时间】:2014-02-08 07:28:28
【问题描述】:

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

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

例如

第 1 列有 252 行。 向量 = [a,b,c,d,e]。 第 1 列[1:252] %*% 向量[a] 第 2 列有 252 行。 第 2 列 [1:252] %*% 向量 [b] 第 4 列有 194 行“NA”或“0”。 #我不知道这是否会改变任何东西,但认为这是有用的信息。 第 4 列[1:252] %*% 向量[d]

【问题讨论】:

  • include a reproducible example,并清楚说明您期望的输出以及您得到的结果(例如出现任何错误?)
  • 那不是 R 代码。用 R 代码创建一个小例子。

标签: r matrix vector dataframe matrix-multiplication


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

【讨论】:

    【解决方案2】:

    这应该比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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 2018-01-23
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多