我有一个由1行和2列组成的矩阵[D](第1列中的截距,第2列中的斜率)。
然后,我有一个30行和2列的矩阵[C],其中该矩阵的第2列是感兴趣的。我想取斜率[D,2]值并将其乘以[C,2]值并添加截距[D,1],然后将新计算的值存储在新矩阵中。截至目前我的代码:
A <- matrix(c(Box.Z, Box.DC.gm), nrow=42)
randco&lt; - function(A){
B<- A[sample(42,6),]
arows <- apply(A, 1, paste, collapse="_")
brows <- apply(B, 1, paste, collapse="_")
C<- A[-match(brows, arows), ]
D<- lm(B[,2] ~ B[,1])$coefficients
}
Z < - t(复制(10000,randco(A)))
答案 0 :(得分:2)
您可以在predict
对象上使用lm
。诀窍是给它C反转列:
predict(lm(B[,2]~B[,1]), newdata=list(B=C[,2:1]))
答案 1 :(得分:0)
只需在C矩阵中添加一列1,矩阵乘以:
cbind(1,C[,2]) %*% D