0
我不得不以下代碼:中的R變換的碼,使之更有效地
WBP2=lapply(1:2500,function(j){as.data.frame(lapply(1:10000,function(i)
{rowSums(data.frame((mapply(`*`,Theta[[j]],t(W[i,]),SIMPLIFY=FALSE))))}))})
W爲矩陣80倍的列和10000行,西塔是1000行和80列2500點的矩陣的列表。我們的目標是爲每2500次模擬創建10000個數據幀。每個data.frame將是一行W(W [i,])乘以theta [[j]]的所有行(因此是80列和1000行的組合)的結果。我們只需要這個投資組合的每一行的總和,因此一列和1000行)
這裏的data.frame是一個可重複的代碼
W=matrix((1:80), nrow =10, ncol=4)
theta= lapply(1:5,function(j){matrix((41:60),nrow=5,ncol=4)})
WBP=lapply(1:5,function(j){as.data.frame(lapply(1:10,function(i)
{rowSums(data.frame(as.matrix(theta[[j]])%*%as.numeric(t(W[i,]))))}))})
View(WBP[[1]])
正如你可以看到,這是相當沉重,我的電腦不能實現這樣的事情。
有沒有辦法讓我的效率更高,更省時?
謝謝!!!
的話你的代碼做 – Batanichek
看起來有些線性代數乘法解釋。什麼是數學等價物? – chinsoon12
't(W [i,])'的用法是什麼,因爲它是維度爲1,80的矩陣,甚至在轉置它之後,將生成具有相同維度的結果? –