gpt4 book ai didi

r - 如何将每列乘以 R 中的每个标量?

转载 作者:行者123 更新时间:2023-12-02 07:19:03 24 4
gpt4 key购买 nike

我有以下变量 Q

a = c(1,2,3,4)
b = c(45,4,3,2)
c = c(34,23,12,45)
Q = cbind(a,b,c)

我还有另一个变量 r
r = c(10,20,30)

我想乘以 Q 的每一列按 r 中的每个值(例如, Q 的第一列乘以 r 中的第一个值, Q 的第二列乘以 r 中的第二个值,依此类推)。

特别是对于这个例子,我正在寻找的输出是:
      10   900   1020
20 80 690
30 60 360
40 40 1350

我是 R 的新手,正在寻找执行此操作的最佳方法。

最佳答案

尝试这个:

Q %*% diag(r)

给予:
     [,1] [,2] [,3]
[1,] 10 900 1020
[2,] 20 80 690
[3,] 30 60 360
[4,] 40 40 1350

或以下任何一项:
t(t(Q) * r)

Q * r[col(Q)]

sweep(Q, 2, r, "*")

Q * rep(r, each = nrow(Q))

mapply("*", as.data.frame(Q), r)

除了使用除法外,请参阅同一问题的答案:
How to divide each row of a matrix by elements of a vector in R

关于r - 如何将每列乘以 R 中的每个标量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51110216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com