bdiag
Rのパッケージ内の関数を使用してMatrix
対角行列を生成し、結果の行列(と呼ばれるmat
)を自己記述関数に渡しますが、次のエラーのためにRを実行できません。
Error: invalid mode (S4) to pass to Fortran (arg 1)
確認isS4(mat)
したところTRUE
です。したがって、関数に渡すためにS4オブジェクトを何らかの方法で変換する方法があると思います。どんなアドバイスも大歓迎です!
更新:ブロック対角行列を作成するために次のコードを使用します。
grp.ids <- as.factor(c(rep(1,8), rep(2,4), rep(3,2)))
x <- model.matrix(~grp.ids)
X <- do.call(bdiag, replicate(238, x, simplify=FALSE))
bdiag
関数を使用せずにS3行列を取得する他の方法はありますか?ありがとう!