我想要做的是将 data.frame 的第 1 列中的所有值乘以向量中的第一个元素,然后将第 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)
所以结果是这样的:
c1 c2 c3
1 1 8 21
2 2 10 24
3 3 12 27
我可以一次执行一列,但如果我有 100 列怎么办?我希望能够以编程方式完成此操作。
或者简单地对向量进行对角化,以便每个行条目乘以 v1 中的相应元素:
c1 <- c(1,2,3)
c2 <- c(4,5,6)
c3 <- c(7,8,9)
d1 <- as.matrix(cbind(c1,c2,c3))
v1 <- c(1,2,3)
d1%*%diag(v1)
[,1] [,2] [,3]
[1,] 1 8 21
[2,] 2 10 24
[3,] 3 12 27
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)