我是一个初学者,现在我遇到了一个问题,我认为它应该有一个非常简单的解决方案。谢谢您的帮助。
我有一个313 * 442矩阵
每列应在另一个数据集的单独列中乘以固定数字。
第一列应乘以0.8,第二列应乘以-2.3和...,最后应计算行的总和。 最后,我应该有一列应与每一行相对应。
答案 0 :(得分:0)
一种选择是在第二个数据集中复制该列以使长度相同并与矩阵相乘
m1 * df1$v1[col(m1)]
# [,1] [,2]
#[1,] 2 9
#[2,] 4 12
或者另一个选择是sweep
sweep(m1, 2, df1$v1, `*`)
# [,1] [,2]
#[1,] 2 9
#[2,] 4 12
m1 <- matrix(c(1, 2, 3, 4), ncol = 2)
df1 <- data.frame(v1 = c(2, 3))
答案 1 :(得分:0)
假设m1是您的矩阵,v1是要与每个列相乘的值的向量。然后,
m1 <- matrix(c(1, 2, 3, 4), ncol = 2)
m1
[,1] [,2]
[1,] 1 3
[2,] 2 4
v1 <- c(2, 3)
t(t(m1) * v1)
# [,1] [,2]
#[1,] 2 9
#[2,] 4 12