Matrix expression causes error "requires numeric/complex matrix/vector arguments"?

105,738

To get the matrix multiplication to work, you need to convert the data.frame (presumably that's what da is) to a matrix. Calculating the transpose with t() automatically does this:

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.

Share:
105,738
user3505808
Author by

user3505808

Updated on September 03, 2020

Comments

  • user3505808
    user3505808 over 3 years
    ma=diag(3)+t(da)%*%da
    

    R Code above, error message as follows:

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

    Could anyone help me to figure out the error?

  • Zheyuan Li
    Zheyuan Li over 5 years
    Data type also matters so in many cases a simple as.matrix is insufficient. See Matrix multiplication in R: requires numeric/complex matrix/vector arguments for example.