這裏不包括NA爲樣本數據:預乘以中的R
set.seed(123)
covar1 <- matrix(sample(c(NA, 1:3), 10, replace = TRUE), 10,1)
covar2 <- matrix(sample(c(NA, 1:3), 10, replace = TRUE), 10,1)
covar3 <- matrix(sample(c(NA, 1:3), 10, replace = TRUE), 10,1)
covar4 <- matrix(sample(c(NA, 1:3), 10, replace = TRUE), 10,1)
covar5 <- matrix(sample(c(NA, 1:3), 10, replace = TRUE), 10,1)
df <- as.data.frame(cbind(covar1,covar2,covar3,covar4,covar5))
names(df) <- c("covar1","covar2","covar3","covar4","covar5")
而這些是我的3點的模型與參數每個coresponding到協變量如df
model0 <- data.frame(covar1=4,covar5=7)
model1 <- data.frame(covar1=2,covar3=5,covar4=3)
model2 <- data.frame(covar1=2,covar2=5,covar3=3,covar5=7)
現在,我想選擇model0-2並與df
對應的行前乘。不符合匹配標準的df行將給予NA
。
的目的是始終使用3可用的最長的模型。因此,如果行匹配4協變模型= model2,那麼df
行應該與模型2預乘,如果不匹配的話應該嘗試模型1或模型0的短路。
所需的輸出:
covar1 covar2 covar3 covar4 covar5 Output Model
1 NA 2 3 NA NA NA
2 1 NA 2 2 2 18 m1 # (1*2)+(2*5)+(2*3)=18
3 3 1 2 1 1 21 m2 # (1*3)+(1*5)+(3*2)+(7*1)=21
4 NA 1 NA 3 2 NA # (1*2)+(2*5)+(2*3)=18
..
..
現在,我不打算寫什麼,我都試過,因爲這將包括更多的信息,通常這樣用戶不喜歡。對於這樣的事情,甚至可能會打包在那裏。任何暗示或幫助非常感謝。
有趣的做法,我學到了很多東西,謝謝! – Maximilian