[問題] 清單裡面加總問題?

作者: eco100 ( )   2017-05-22 16:46:52
假設我一個list格式的資料長這樣:
[[1]]
A C D
[1,] 0 1 0
[2,] 1 0 0
[3,] 0 2 1
[[2]]
A C D
[1,] 0 1 1
[2,] 1 0 0
[3,] 1 0 1
[[3]]
A C D
[1,] 0 1 0
[2,] 0 0 0
[3,] 0 0 1
我要的很簡單,就是把清單裡面,相同index的值加總起來,結果會如下:
A C D
[1,] 0 3 1
[2,] 2 0 0
[3,] 1 2 3
我做法也很簡單,直接用for迴圈
result <- matrix(data = 0, nrow = 3, ncol = 3)
for(i in 1:3){
result <- result + data_list[[i]]
}
我想問的是,這個除了用迴圈,還有其他函數可以用嗎?或許也需要搭配apply?
因為清單裡面可能會有上百萬或上千萬筆的資料
不知道有比較效率的方式?謝謝!
作者: celestialgod (天)   2017-05-22 17:26:00
Reduce(function(x,y) x+y, list_of_matrix)
作者: andrew43 (討厭有好心推文後刪文者)   2017-05-22 17:31:00
用apply較麻煩,資料要先改成array
作者: rockken   2017-05-22 22:38:00
Reduce("+",data_list)
作者: eco100 ( )   2017-05-23 10:14:00
感謝介紹Reduce!
作者: clsmbstu   2017-06-01 11:41:00
Reduce真好用!感謝!

Links booklink

Contact Us: admin [ a t ] ucptt.com