user3505808 - 1 year ago 414

R Question

`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`

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 Source

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.