Error in apply: dim(X) must have a positive length

[This article was first published on Methods – finnstats, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Visit for the most up-to-date information on Data Science, employment, and tutorials finnstats.

If you want to read the original article, go here Error in apply: dim(X) must have a positive length

Error in apply(data$x, 2, mean): dim(X) must have a positive length, In this post, you’ll discover how to prevent the R programming error.

When you try to use the apply() function to generate a metric for a column of a data frame or matrix but pass a vector as an argument instead of a data frame or matrix, you’ll get this error.

First, we need to create a data frame for illustration. Let’s create two variables x and y.

data <- data.frame(x = 1:9, y = 21:29)

Now we can load the data frame into the r console.

data                           
   x  y
1 1 21
2 2 22
3 3 23
4 4 24
5 5 25
6 6 26
7 7 27
8 8 28
9 9 29

Take a look at the data that the preceding syntax produced. It shows that our sample data has nine rows and two columns.

First, we need to reproduce the error in R console.

Reproduce the Error: dim(X) must have a positive length

The error in apply may be replicated using the R code below.

Let’s pretend we’re looking for the mean of the variable x in our sample data. Then, as demonstrated below, we may try using the apply and mean functions.

apply(data$x, 2, mean) 
Error in apply(data$x, 2, mean) : dim(X) must have a positive length

As you can see, the error notice appears in the RStudio console.

The reason for this is that we attempted to utilize a vector as input for the apply function (i.e. the column vector x). The apply function, on the other hand, only accepts full data tables as an input.

The apply() method must be applied to a data frame or matrix, however, we are attempting to apply it to a single column in the data frame, resulting in an error.

Let’s see how to resolve the problem.

Solution: Solve the Error

Here we have three solutions to solve this issue in R.

Approach 1:

To get the mean of all variables in our data frame, we may use the apply function.

Let’s see how to resolve the issue.

apply(data, 2, mean)           
x  y
5 25

Approach 2:-

Apply function allow us to find the mean of certain values in a data frame:

apply(data[c('x')], 2, mean)  
x
5

Approach 3:-

If you’re only interested in one variable, then you can make use of the mean function to get the variable’s mean.

mean(data$x)
[1] 5

Keep in mind that the apply function cannot be used with one-dimensional data, regardless of which option you choose.

QQ-plots in R: Quantile-Quantile Plots-Quick Start Guide »

Subscribe to our newsletter!

Don't forget to express your happiness by leaving a comment.
Error in apply: dim(X) must have a positive length.

The post Error in apply: dim(X) must have a positive length appeared first on finnstats.

To leave a comment for the author, please follow the link and comment on their blog: Methods – finnstats.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)