user3505808 - 1 year ago 581
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

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download