【问题标题】:Dividing a matrix by a vector with ncol=number of matrix columns将矩阵除以 ncol=矩阵列数的向量
【发布时间】:2016-04-30 08:29:22
【问题描述】:

我在使用 R 时遇到了难题。

数据1

    [A] [B] [C]
[a]  2   3   5
[b]  3   2   4

数据2

[c]  4   3   5

结果

    [A] [B] [C]
[a]  .5  1   1
[b] .75 .67 .8

事情就是这样。我希望data1中每列的每个值都除以data2中的相应值,例如将A列除以4,将B列除以3。 我想要一个结构与 data1 相同的结果。 你能帮帮我吗?

【问题讨论】:

    标签: r matrix scale


    【解决方案1】:

    这是sweep的工作:

    sweep(data1, 2, data2, FUN="/")
    
         [,1]      [,2] [,3]
    [1,] 0.50 1.0000000  1.0
    [2,] 0.75 0.6666667  0.8
    

    或者:

    t(t(data1)/c(data2))
    

    【讨论】:

      【解决方案2】:

      我们也可以

      data1/data2[col(data1)]
      #        A         B   C
      #[1,] 0.50 1.0000000 1.0
      #[2,] 0.75 0.6666667 0.8
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-14
        • 1970-01-01
        • 1970-01-01
        • 2014-07-06
        • 1970-01-01
        • 1970-01-01
        • 2018-06-13
        • 1970-01-01
        相关资源
        最近更新 更多