# Data Structures in R

A data structure is a special way of organizing data in a computer so that it can be used effectively. The idea is to decreases the space and time complexities of different tasks. Data structures in R programming are tools for holding multiple values. R’s base data structures are often organized by their dimensionality (1D, 2D, or nD) and whether they’re homogeneous or heterogeneous.

Homogeneous: all elements must be of the identical type

Heterogeneous: the elements are often of different types

R has many data structures. These are;

• atomic vector
• list
• matrix
• data frame
• factors

Vectors

A vector is the most common and basic data structure in R and is pretty much the workhorse of R. Technically, vectors can be one of two types:

• atomic vectors
• lists

Although the term “vector” most commonly maens the atomic types not to lists.

The Different Vector Modes

A vector is a collection of elements that are most commonly of mode

• Character
• Logical
• Integer or numeric

### Matrix

In R matrices are an extension of the numeric or character vectors. They are not a separate type of object but simply an atomic vector with dimensions; the number of rows and columns. As with atomic vectors, the elements of a matrix must be of the same data type.

### List

In R lists act as containers. Unlike atomic vectors, the contents of a list are not restricted to a single mode and can encompass any mixture of data types. Lists are sometimes called generic vectors, because the elements of a list can be of any type of R object, even lists containing further lists. This property makes them basically different from atomic vectors.

Lists can be extremely useful inside functions. Because the functions in R are able to return only a single object, we can “staple” together lots of different kinds of results into a single object that a function can return. A list does not print to the console like a vector. Instead, each element of the list starts on a new line.

Data Frame

A data frame is a very important data type in R. It’s pretty much the de facto data structure for most tabular data and what we use for statistics. A data frame is a special type of list where every element of the list has same length (i.e. data frame is a “rectangular” list).

One important use of attributes is to define factors. A factor is a vector that can contain only predefined values, and is used to store categorical data. Factors are built on top of integer vectors using two attributes: the `class`, “factor”, which makes them, behaves differently from regular integer vectors, and the `levels`, which defines the set of allowed values.