11

重複の可能性:
行列のリストを合計する 行列
のリストを要素ごとに加算する

R リスト オブジェクトがあります。リストの各要素には、3 行 3 列の行列が含まれます。すべての行列を要素ごとに合計したい。あれは:

 myList <- list();
 myList[[1]] <- matrix(1:9,3,3)
 myList[[2]] <- matrix((1:9)*10,3,3)

次に、最終出力出力が必要です

myList[[1]]+myList[[2]]

      [,1] [,2] [,3]
 [1,]   11   44   77
 [2,]   22   55   88
 [3,]   33   66   99

もちろん、この計算のループを書くことはできますが、R でのループは非常に遅いです。このビジネスを行うRに組み込み関数はありますか?

4

4 に答える 4

23

を参照してください?Reduce

例から:

## A general-purpose adder:
add <- function(x) Reduce("+", x)

その後、次のことができます

add(myList)
于 2013-01-03T21:37:46.057 に答える
3

興味のある方へ:

ffoo<-function(jloop){
barlist<-matrix(nr=25,nc=40)
for (jj in 1:jloop) barlist<-barlist+foolist[[jj]]
}

baradd <- function(x) Reduce("+", x)

につながる:

Rgames> foo<-matrix(1:1000,25)
Rgames> for (jj in 1:5e5) foolist[[jj]]<-foo
Rgames> system.time(baradd(foolist))
   user  system elapsed 
    1.7     0.0     1.7 

Rgames> system.time(ffoo(1e5))
   user  system elapsed 
    0.3     0.0     0.3
于 2013-01-04T14:35:14.800 に答える