假设我想更改以下矩阵:
a= matrix(c(
1:20),ncol=5)
a
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20
rvec= c(4,2)
cvec=c(1,5)
a[rvec,cvec] = c(200,500)
a
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 500 6 10 14 500
[3,] 3 7 11 15 19
[4,] 200 8 12 16 200
但我想要:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 500
[3,] 3 7 11 15 19
[4,] 200 8 12 16 20
将向量视为值的位置 - 将 x,y (4,1) 和 x,y (2,5) c(200,500)
分别更改为 in。
我可以用 for 循环做到这一点,但它太慢了。
for(i in 1:length(c(200,500)))
{
a[rvec[i],cvec[i]] = c(200,500)[i]
}
a
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 500
[3,] 3 7 11 15 19
[4,] 200 8 12 16 20