ma=diag(3)+t(da)%*%da
Code R ci-dessus, message d'erreur comme suit:
Error in t(da) %*% da : requires numeric/complex matrix/vector arguments
da
est une matrice, ressemble à ceci:
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
Quelqu'un pourrait-il m'aider à comprendre l'erreur?
Pour que la multiplication matricielle fonctionne, vous devez convertir le data.frame (probablement c'est ce que da est) en une matrice:
t(da)%*%as.matrix(da)
Mais cela donne une matrice 7x7 qui ne peut pas être ajoutée à la matrice d'identité 3x3 que vous utilisez. Voulez-vous dire quelque chose comme:
ma=diag(7)+t(da)%*%as.matrix(da)
Vous aimerez peut-être jeter un œil à An Introduction to R si vous ne vous sentez pas sûr de la différence entre une matrice et data.frame.