data.tableのグループごとのグループごとに、私は行列を作成します。私はこれらのすべての行列を1つの結果として追加したいと思います。以下の例は、よりよく説明しています。data.tableでグルーピングした結果の各行列の合計
set.seed(1)
library(data.table)
A <- data.table(A = letters[1:3], B = rnorm(3))
fun <- function(dt){ matrix(rnorm(9),nrow = 3, ncol = 3) }
A[,fun(.SD), by = A]
この出力は、すべての行列エントリが積み重ねられた列ベクトルです。私は、行列形式を回復するか、別の方法を使用したいと思います。
私は(そう、本当に、私は私の答えを得る方による使用、またはdata.table気にしないだろう)で、私が使用し得るすべての行列を追加したいと思います:
by(A, A$A, fun)
A$A: a
[,1] [,2] [,3]
[1,] -0.6264538 1.5952808 0.4874291
[2,] 0.1836433 0.3295078 0.7383247
[3,] -0.8356286 -0.8204684 0.5757814
--------------------------------------------------------------------------------------
A$A: b
[,1] [,2] [,3]
[1,] -0.3053884 -0.6212406 -0.04493361
[2,] 1.5117812 -2.2146999 -0.01619026
[3,] 0.3898432 1.1249309 0.94383621
--------------------------------------------------------------------------------------
A$A: c
[,1] [,2] [,3]
[1,] 0.8212212 0.78213630 0.61982575
[2,] 0.5939013 0.07456498 -0.05612874
[3,] 0.9189774 -1.98935170 -0.15579551
以前誰かが((A、A $ A、楽しい)で、 "+")の削減使うことを提案していたに基づいており、それはかなりうまくいきました。残念ながら、その人は答えを削除しました – dleal
@フランク - あなたがコメントしたものと同じようなものを入力していました。答えとして追加する必要があります。 – thelatemail
@Frank - ok - 私はあなたにバーチャルビールを借りています。 – thelatemail