我有一個返回向量和矩陣列表的函數。然後我創建一個變量,該變量是從調用該函數得到的幾個列表的列表。所以我有一個列表清單。我的問題是如何在這些列表的元素上應用一個函數(注意這不同於在列表本身上應用函數)。這裏是保留了我在做什麼將函數應用於列表中的特定元素
numtrials = 5
x = rep(list(NULL),numtrials)
testfunction = function(){return(list(c(1,2,3,4,5), matrix(runif(10), 2,5),
matrix(0,2,2)))}
for(index in 1:numtrials){
x[[index]] = testfunction()
}
我想現在計算平均值所有基本功能的說,在所有「指標」名單x[[index]][[2]]
的(2,3)元素的簡單例子。或者更好的獲得矩陣的手段,xbar
,例如xbar[i,j] = mean(x[[]][[2]][i,j])
。我試圖玩弄(當然閱讀幫助文件)lapply
,和apply
,但無法讓它工作。其中一個原因是,x[[]][[2]][i,j]
似乎無效符號
Error in x[[]] : invalid subscript type 'symbol'
我覺得R不知道做的「[[]]
」什麼。我知道有些人會提出矢量化,但請注意,我的函數返回不同維度的矩陣和向量(儘管如果您有一個聰明的方法,我不會反對向量化)。
這可能有助於在你的崗位上包括你想爲X [[指數]] [[2]]的(2,3)元素的平均價值。並且包括你想要的xbar的值。這將幫助其他人檢查他們的代碼是否會返回所需內容。至少它會幫助我。 –
該矩陣是隨機的,所以它將取決於你的種子,Marius的帖子適用於特定的[2,3]例子,所以你可以使用該代碼來檢查你的代碼的全部矩陣的情況下,通過檢查[2, 3]元素對Marius的代碼 – MHH