R 如何向矩阵列添加不同的值

R 如何向矩阵列添加不同的值,r,matrix,R,Matrix,通过使用循环,向矩阵中的每一行添加不同的值非常简单: m <- matrix(1:12, ncol=4) print(m + c(100, 200, 300)) 我无法想象我会在有忍者攻击我之前完成输入,但是: 方法一: for (j in 1:4) m[,j]<-m[,j]+100*j for(j in 1:4)m[,j]我无法想象我会在有忍者攻击我之前完成输入,但是: 方法一: for (j in 1:4) m[,j]<-m[,j]+100*j 对于(1:4中的j)m

通过使用循环,向矩阵中的每一行添加不同的值非常简单:

m <- matrix(1:12, ncol=4)
print(m + c(100, 200, 300))

我无法想象我会在有忍者攻击我之前完成输入,但是:

方法一:

for (j in 1:4) m[,j]<-m[,j]+100*j

for(j in 1:4)m[,j]我无法想象我会在有忍者攻击我之前完成输入,但是:

方法一:

for (j in 1:4) m[,j]<-m[,j]+100*j

对于(1:4中的j)m[,j]你可以用转置做同样的事情:

t(t(m) + c(100,200,300,400))
   [,1] [,2] [,3] [,4]
[1,]  101  204  307  410
[2,]  102  205  308  411
[3,]  103  206  309  412

您可以对转置执行相同的操作:

t(t(m) + c(100,200,300,400))
   [,1] [,2] [,3] [,4]
[1,]  101  204  307  410
[2,]  102  205  308  411
[3,]  103  206  309  412

如果包含不同值的向量的长度等于或等于
m
列数的倍数,则可以执行此操作

> mapply(`+`, as.data.frame(m),c(100, 200, 300, 400))
      V1  V2  V3  V4
[1,] 101 204 307 410
[2,] 102 205 308 411
[3,] 103 206 309 412

如果包含不同值的向量的长度等于或等于
m
列数的倍数,则可以执行此操作

> mapply(`+`, as.data.frame(m),c(100, 200, 300, 400))
      V1  V2  V3  V4
[1,] 101 204 307 410
[2,] 102 205 308 411
[3,] 103 206 309 412