How to get the type of an object in R?

Spread the love

Determining the type of an object is a foundational task in any programming language, and R is no exception. Knowing an object’s type is crucial for debugging, data analysis, and proper function implementation. In R, you have several ways to find out the type of an object you’re dealing with. This article provides an in-depth look into these methods and their applications. By the end of this guide, you’ll be familiar with:

  1. Why it’s important to know the type of an object in R.
  2. Various functions and techniques to determine an object’s type.
  3. Examples to illustrate these methods.

The Importance of Knowing the Type of an Object

Before diving into how to determine the type of an object, let’s explore why this is important.

  1. Debugging: Knowing the type of an object helps in debugging code. You’ll be able to quickly identify if an error is due to type mismatches.
  2. Optimization: Some operations are more efficient on specific types of data. Knowing the object type can allow you to optimize your code for performance.
  3. Functionality: Different types of objects have different properties and methods. Knowing the type allows you to manipulate the object more effectively.

Types of Objects in R

R has a variety of object types, including:

  • Scalars
  • Vectors
  • Matrices
  • Data Frames
  • Lists
  • Factors
  • Functions
  • S3, S4, and Reference Classes

Methods to Determine the Type of an Object in R

Here are several methods you can use to determine an object’s type in R.

Method 1: Using class( )

The class() function is one of the most straightforward ways to find out the type of an object. This function is suitable for S3 objects and basic data types.

x <- 1:10
# Output: "integer"

y <- data.frame(x = c(1, 2, 3), y = c("a", "b", "c"))
# Output: "data.frame"

Method 2: Using typeof( )

The typeof() function gets the internal storage mode of the object, providing more fundamental information about the object’s type.

x <- 1L
# Output: "integer"

Method 3: Using mode( )

The mode() function tells you the mode of an object, which is related to how the object is stored in memory. This is often similar to what typeof() returns but can be set explicitly by the user.

x <- 1:10
# Output: "numeric"

Method 4: Using is.* Functions

R provides several is.* functions to check if an object is of a specific type, like is.vector(), is.matrix(),, and so on.

x <- 1:10
# Output: TRUE

y <- data.frame(x = c(1, 2, 3), y = c("a", "b", "c"))
# Output: TRUE

Method 6: Using inherits( )

In R, many functions return objects that are of a particular class. For instance, the lm() function for linear models returns an object of class “lm”. Here’s how you could use inherits() to check if an object is of class “lm”.

First, we create a simple linear model:

# Create some sample data
x <- c(1, 2, 3, 4, 5)
y <- c(2, 4, 3, 4, 5)

# Fit a linear model
linear_model <- lm(y ~ x)

# Check the class of the object
# Output: "lm"

Now, we can use inherits() to check if this object is indeed an instance of class “lm”:

inherits(linear_model, "lm")
# Output: TRUE


Knowing how to determine the type of an object in R is an essential skill for anyone working in data analysis, research, or any R-based computational environment. Depending on your specific needs, R offers a range of functions, from class() and typeof() for basic types to specialized functions like is.* and inherits() for more complex object types.

Posted in RTagged

Leave a Reply