【问题标题】:How to do matrix or vector multiplications based on names of matrix in R如何根据R中的矩阵名称进行矩阵或向量乘法
【发布时间】:2014-07-17 11:08:47
【问题描述】:

我有对象 a(第一行是名称):

26/03/2012  02/04/2012  09/04/2012  16/04/2012  23/04/2012  30/04/2012  07/05/2012  14/05/2012
10          20          50          20          10           0          3          15

对象 b(第一行是名称):

16/04/2012  23/04/2012  30/04/2012  07/05/2012
6           20          8           2

我想做一个简单的乘法,但要根据名字匹配的地方 即我希望输出为

16/04/2012  23/04/2012  30/04/2012  07/05/2012
120         200         0           6

最好的方法是什么?名称匹配的某种条件会很棒。谢谢

【问题讨论】:

    标签: r vector matrix match


    【解决方案1】:

    一种方法是找到出现在两个向量中的名称,并使用这些通用名称来选择每个向量中的元素:

    v1 <-c(10, 20, 50, 20, 10, 0, 3, 15)
    names(v1) <- c("26/03/2012", "02/04/2012", "09/04/2012", "16/04/2012", "23/04/2012", 
    "30/04/2012", "07/05/2012", "14/05/2012")
    v2 <- c(6, 20, 8, 2)
    names(v2) <- c("16/04/2012", "23/04/2012", "30/04/2012", "07/05/2012")
    id <- intersect(names(v1), names(v2))
    v1[id] * v2[id]
    # 16/04/2012 23/04/2012 30/04/2012 07/05/2012 
    #        120        200          0          6 
    

    【讨论】:

      猜你喜欢
      • 2018-03-28
      • 2020-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多