0
我有一個三個數據框的列表,每個數據框有n列(在這種情況下是6列)和r行(在這種情況下是3列)。我想創建一個與列表中三個數據幀的平均尺寸(n * r)相同的矩陣。因此,例如,輸出矩陣的[1,1]應該是0.2470748,0.2558439和0.2439057的平均值。任何想法如何做到這一點?以平均值
我有一個三個數據框的列表,每個數據框有n列(在這種情況下是6列)和r行(在這種情況下是3列)。我想創建一個與列表中三個數據幀的平均尺寸(n * r)相同的矩陣。因此,例如,輸出矩陣的[1,1]應該是0.2470748,0.2558439和0.2439057的平均值。任何想法如何做到這一點?以平均值
我們可以使用Reduce
Reduce(`+`, lis)/length(lis)
# [,1] [,2] [,3] [,4] [,5] [,6]
#[1,] 0.2489415 0.2825572 0.3033121 0.3011313 0.3560603 0.5091391
#[2,] 0.2033602 0.2516646 0.2805718 0.2855458 0.3428526 0.4959503
#[3,] 0.1841235 0.2362422 0.2771326 0.2821553 0.3382137 0.4888071
或者另一種選擇是apply
(如在由@Ananda Mahto意見所)
apply(simplify2array(lis), c(1,2), mean)
# [,1] [,2] [,3] [,4] [,5] [,6]
#[1,] 0.2489415 0.2825572 0.3033121 0.3011313 0.3560603 0.5091391
#[2,] 0.2033602 0.2516646 0.2805718 0.2855458 0.3428526 0.4959503
#[3,] 0.1841235 0.2362422 0.2771326 0.2821553 0.3382137 0.4888071
mean
功能的優點是,如果有是NA值,我們可以使用na.rm=TRUE
作爲參數。
謝謝,完美的作品! – Joseph
這是[r]標籤嗎?從問題我不能告訴 – fedorqui
@fedorqui我認爲當問題發佈時,有'r'標籤,但它可能已被正常磨損刪除。 – akrun