I am maximizing a likelihood function and trying to reduce the loop.
I want to add the vector(parameters to be estimated) to all rows of a matrix (data). The length of vector equals to the column of matrix.
a+b
would give the wrong results because the recycle rule of R is by column not row.
a<-c(1,2,0,0,0) # parameters to be optimized
b<-matrix(1,ncol=5,nrow=6) # data
t(a+t(b)) # my code would work, anything more intuitive?
Desired output
[,1] [,2] [,3] [,4] [,5]
[1,] 2 3 1 1 1
[2,] 2 3 1 1 1
[3,] 2 3 1 1 1
[4,] 2 3 1 1 1
[5,] 2 3 1 1 1
[6,] 2 3 1 1 1
The wrong output
a+b
[,1] [,2] [,3] [,4] [,5]
[1,] 2 3 1 1 1
[2,] 3 1 1 1 2
[3,] 1 1 1 2 3
[4,] 1 1 2 3 1
[5,] 1 2 3 1 1
[6,] 2 3 1 1 1
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…