我想要做的是将data.frame的第1列中的所有值乘以向量中的第一个元素,然后将第2列中的所有值乘以向量中的第2个元素,等等......
c1 <- c(1,2,3)
c2 <- c(4,5,6)
c3 <- c(7,8,9)
d1 <- data.frame(c1,c2,c3)
c1 c2 c3
1 1 4 7
2 2 5 8
3 3 6 9
v1 <- c(1,2,3)
Run Code Online (Sandbox Code Playgroud)
结果如下:
c1 c2 c3
1 1 8 21
2 2 10 24
3 3 12 27
Run Code Online (Sandbox Code Playgroud)
我可以一次只做一列,但如果我有100列呢?我希望能够以编程方式执行此操作.
我想对一个非常大的二进制矩阵的每一行进行向量的元素乘法。我的向量的长度等于我的矩阵的列数。我已经实现了使用 for 循环如下,但它非常慢。有谁知道加快速度的解决方案?
A <- c()
M # Binary matric
W <- matrix(0, nrow=nrow(M), ncol=ncol(M))
W <- data.frame(W)
for (i in 1:nrow(W)) {
W[i,] <- M[i,] * A
}
Run Code Online (Sandbox Code Playgroud) r ×2