user3505808 user3505808 - 2 months ago 148
R Question

How to solve the error requires numeric/complex matrix/vector arguments in R?

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


code is like above, and error message is as following:

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


da
is a matrix, looks as following:

V45 V46 V47 V48 V49 V50 V51

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.93946134 5 1.148286984 -0.232390389 -0.498465734 -0.45728816 0.352889082 0.9868844505 -0.68401129

Could anyone help me to figure out the error?

Thanks

Answer

To get the matrix multiplication to work, you need to convert the data.frame (presumably that's what da is) to a matrix:

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

But this gives a 7x7 matrix which can't be added to the 3x3 identity matrix that you're using. Do you mean something like:

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

You may like to have a look at An Introduction to R if you don't feel confident about the difference between a matrix and data.frame.