Home

How to Identify and Correct Dropped Dimensions in R

By: 
No items found.
|
Updated:  
2016-03-26 17:31:36
|
From The Book:  
No items found.
Statistical Analysis with R Essentials For Dummies
Explore Book
Buy On Amazon

Every function in R expects your data to be in a specific format. That doesn't mean simply whether it's an integer, character, or factor, but also whether you supply a vector, a matrix, a data frame, or a list. Many functions can deal with multiple formats, but sometimes the result isn't what you expect at all.

For instance, R automatically tries to reduce the number of dimensions when subsetting a matrix, array, or data frame. If you want to calculate the row sums of the numeric variables in a data frame — for example, the built-in data frame sleep — you can write a little function like this:

rowsum.df

id

rowSums(x[, id])

}

If you try that out on two built-in data frames, pressure and sleep, you get a result for the first one but the following error message for the second:

> rowsum.df(sleep)

Error in rowSums(x[, id]) :

'x' must be an array of at least two dimensions

Because sleep contains only a single numeric variable, x[, id] returns a vector instead of a data frame, and that causes the error in rowSums().

You can solve this problem either by adding drop=FALSE or by using the list subsetting method x[i] instead.

About This Article

This article is from the book: 

No items found.

About the book author:

No items found.