R Error – Multiplication requires numeric/complex matrix/vector arguments
In this R tutorial you’ll learn how to handle the error message “requires numeric/complex matrix/vector arguments”.
The post is structured as follows:
Let’s dive right in:
Creation of Example Data
To start with, we need to create some example data:
data <- data.frame(x1 = 2:7, # Create example data x2 = c(2, 1, 5, 3, 2, 7), x3 = c(0, 3, 9, 1, 2, 1)) data # Print example data
Table 1 shows the structure of our example data: It contains six rows and three columns.
Example 1: Reproduce the Error – requires numeric/complex matrix/vector arguments
In this example, I’ll explain how to replicate the error message “requires numeric/complex matrix/vector arguments” in R.
Let’s assume that we want to perform a matrix multiplication based on our data. Then, we might try to use the following R syntax:
data_multi <- t(data) %*% data # Try to use data frame # Error in t(data) %*% data : # requires numeric/complex matrix/vector arguments
As you can see, the RStudio console returns the error message “requires numeric/complex matrix/vector arguments”. The reason for this is that our input data has the data.frame class instead of the matrix class. Since the %*% operator cannot handle data frames, it returns an error message.
So how can we solve this problem? That’s what I’ll show next!
Example 2: Fix the Error – requires numeric/complex matrix/vector arguments
This example illustrates how to avoid the matrix multiplication error “requires numeric/complex matrix/vector arguments”.
For this, we have to convert our data frame object to the matrix type using the as.matrix function:
data_multi <- t(data) %*% as.matrix(data) # Convert data frame to matrix data_multi # Print result
Table 2 shows the output of the previous syntax: The result of our matrix multiplication.
Video, Further Resources & Summary
Would you like to know more about errors and warning messages? Then you might have a look at the following video of my YouTube channel. In the video, I illustrate the contents of this tutorial.
The YouTube video will be added soon.
Besides the video, you could have a look at the related tutorials on my website. Some articles are listed here.
- Matrix Multiplication Error in R: non-conformable arguments
- Error in hist.default : ‘x’ must be numeric
- Calculate Correlation Matrix Only for Numeric Columns in R
- Handling Warnings & Errors in R
- All R Programming Examples
On this page, I have shown how to deal with the error “requires numeric/complex matrix/vector arguments” in the R programming language. Don’t hesitate to let me know in the comments, in case you have additional questions and/or comments.
I am working with the harvad database on german credits for a credit scoring model. I wanted to apply the “nuralnet” function but it gives me the following error: error in neurons[[i]] %*% weights[[i]] : requires numeric/complex matrix/vector arguments.
Taking the advice from your article to the base dedicated to training, I applied:
data_train<- t(train) %*% as.matrix(train) .
but it still gives me the same error.
This is really hard to tell without seeing the data and its structure. Could you share the output when you run head(your_data) & str(your_data) ?