由于R没有以零作为索引的矩阵/向量,所以如何做到这一点并不是非常直观的,这在Basic中更为清晰。
我经常需要乘以一个矩阵,比如大小为3乘5,向量大小为4,然后是" 1.00"作为第一要素。这些年来(几十年),这第一个元素被称为第零元素。现在我必须找出一个在R中做到这一点的好方法。
A <- matrix(c(2, -1, 4.2, 3, 0, -4, -2, 4.5, 2, 0.4, 4, 0, -1.5, 2, 2), 3, 5, byrow=TRUE)
x <- c(10.0, 20.0, 30.0, 25)
现在我应该形成一个新的向量xx
,首先是1,然后是x xx <- c(1, 10.0, 20.0, 30.0, 25)
的元素,然后将A
乘以xx
}。
在R中执行此操作的好方法是什么?梯队?
答案 0 :(得分:1)
你可以做任何一次
A %*% c(1, x)
# [,1]
# [1,] 166
# [2,] 136
# [3,] 84
或
A[, -1, drop = FALSE] %*% x + A[, 1, drop = FALSE]
# [,1]
# [1,] 166
# [2,] 136
# [3,] 84
我更喜欢第一个,不是因为它看起来更简单,但因为在R中,它不会使用更多的内存作为第二个。