set.seed(0)
A <- matrix(round(rnorm(9), 1), 3)
# [,1] [,2] [,3]
#[1,] 1.3 1.3 -0.9
#[2,] -0.3 0.4 -0.3
#[3,] 1.3 -1.5 0.0
你还有另一个向量x
,这就是你所说的“ponderation”:
x <- round(rnorm(3), 1)
#[1] 2.4 0.8 -0.8
您可以这样做
drop(A %*% x)
#[1] 4.88 -0.16 1.92
drop
函数将结果单列矩阵转换为一维向量。您可以快速检查以确定是否符合要求。sum(A[1, ] * x)
#[1] 4.88
sum(A[2, ] * x)
#[1] -0.16
sum(A[3, ] * x)
#[1] 1.92
rowSums()
相比,你也可以将这种计算看作是“加权行求和”。
as.matrix()
将此数据框转换为矩阵。