1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】行列式で「数値/複雑な行列/ベクトルの引数が必要です」というエラーが発生?

2022-01-11 22:31:07

質問内容

Rのコードは以下の通りです。

ma=diag(3)+t(da)%*%da

実行すると、エラーが発生します。

Error in t(da) %*% da : requires numeric/complex matrix/vector arguments

da は以下の通りです。

V45       V46          V47          V48         V49         V50          V51    
1    0.461727059  2.357732985 -1.536932071 -1.34425710  0.893541975 -0.0676913075 -0.86532231
2    0.253022555  1.524473647 -0.588911138 -1.65207275 -0.072255170 -0.5212951533 -1.43686625
3    0.824678362  1.497001189  0.335973892 -0.84027799  0.275289411 -0.2921928001 -0.16277595
4    0.854530787  2.258305198  0.107346531 -1.69194014 -0.841572928 -1.1153931009 -1.939461341
5    1.148286984 -0.232390389 -0.498465734 -0.45728816  0.352889082  0.9868844505 -0.68401129

解決方法は?

行列の掛け算を動作させるには、data.frame (おそらく da はこれです) を行列に変換する必要があります。

t(da)%*%as.matrix(da)

しかし、これでは7x7の行列ができ、あなたが使っている3x3の単位行列に足すことはできません。というような意味でしょうか。

ma=diag(7)+t(da)%*%as.matrix(da)

をご覧になってみてください。 R入門 行列とdata.frameの違いに自信がなければ