R Data Structures

Introduction

In this chapter, you will learn about various data structures in R. Understanding these data structures is crucial for effectively managing and manipulating data in your R programs. The main data structures in R include vectors, lists, matrices, arrays, data frames, and factors.

Vectors

Vectors are the most basic data structures in R. They are one-dimensional arrays that can hold numeric, character, or logical data.

Creating Vectors

Example:

# Numeric vector
num_vec <- c(1, 2, 3, 4, 5)
print(num_vec)

# Character vector
char_vec <- c("a", "b", "c", "d", "e")
print(char_vec)

# Logical vector
log_vec <- c(TRUE, FALSE, TRUE, TRUE, FALSE)
print(log_vec)

Accessing Elements

Example:

# Accessing elements
print(num_vec[1])  # Output: 1
print(char_vec[2])  # Output: "b"
print(log_vec[3])  # Output: TRUE

Vector Operations

Example:

# Vector operations
vec1 <- c(1, 2, 3)
vec2 <- c(4, 5, 6)

# Addition
print(vec1 + vec2)  # Output: 5 7 9

# Subtraction
print(vec1 - vec2)  # Output: -3 -3 -3

# Multiplication
print(vec1 * vec2)  # Output: 4 10 18

# Division
print(vec1 / vec2)  # Output: 0.25 0.4 0.5

Lists

Lists are versatile data structures that can hold elements of different types, including other lists.

Creating Lists

Example:

# Creating a list
my_list <- list(num_vec, char_vec, log_vec)
print(my_list)

Accessing Elements

Example:

# Accessing elements
print(my_list[[1]])  # Access first element (num_vec)
print(my_list[[2]][3])  # Access third element of char_vec

Matrices

Matrices are two-dimensional arrays that can hold numeric, character, or logical data. All elements in a matrix must be of the same type.

Creating Matrices

Example:

# Creating a matrix
mat <- matrix(1:9, nrow = 3, ncol = 3)
print(mat)

Accessing Elements

Example:

# Accessing elements
print(mat[1, 2])  # Access element at first row, second column
print(mat[, 3])  # Access all elements of the third column
print(mat[2, ])  # Access all elements of the second row

Arrays

Arrays are multi-dimensional generalizations of matrices.

Creating Arrays

Example:

# Creating an array
arr <- array(1:12, dim = c(3, 2, 2))
print(arr)

Accessing Elements

Example:

# Accessing elements
print(arr[1, , ])  # Access all elements of the first row across all dimensions
print(arr[, 2, 1])  # Access all elements of the second column in the first matrix

Data Frames

Data frames are two-dimensional data structures that can hold elements of different types (numeric, character, logical) in each column.

Creating Data Frames

Example:

# Creating a data frame
df <- data.frame(Name = c("Alice", "Bob", "Charlie"),
                 Age = c(25, 30, 35),
                 Gender = c("F", "M", "M"))
print(df)

Accessing Elements

Example:

# Accessing elements
print(df$Name)  # Access the 'Name' column
print(df[1, ])  # Access the first row
print(df[, 2])  # Access the second column
print(df[2, 3])  # Access element at second row, third column

Factors

Factors are used to represent categorical data. They can be ordered or unordered.

Creating Factors

Example:

# Creating a factor
factor_data <- factor(c("low", "medium", "high", "medium", "low"))
print(factor_data)
print(levels(factor_data))  # Output: "high" "low" "medium"

Changing Factor Levels

Example:

# Changing factor levels
levels(factor_data) <- c("low", "medium", "high")
print(factor_data)

Example Program Using Different Data Structures

Here is an example program that demonstrates the use of various data structures in R:

# Example program using different data structures

# Vectors
num_vec <- c(1, 2, 3, 4, 5)
char_vec <- c("a", "b", "c", "d", "e")
log_vec <- c(TRUE, FALSE, TRUE, TRUE, FALSE)

# Lists
my_list <- list(num_vec, char_vec, log_vec)

# Matrices
mat <- matrix(1:9, nrow = 3, ncol = 3)

# Arrays
arr <- array(1:12, dim = c(3, 2, 2))

# Data Frames
df <- data.frame(Name = c("Alice", "Bob", "Charlie"),
                 Age = c(25, 30, 35),
                 Gender = c("F", "M", "M"))

# Factors
factor_data <- factor(c("low", "medium", "high", "medium", "low"))

# Print data structures
print("Numeric Vector:")
print(num_vec)
print("Character Vector:")
print(char_vec)
print("Logical Vector:")
print(log_vec)

print("List:")
print(my_list)

print("Matrix:")
print(mat)

print("Array:")
print(arr)

print("Data Frame:")
print(df)

print("Factor:")
print(factor_data)

Conclusion

In this chapter, you learned about various data structures in R, including vectors, lists, matrices, arrays, data frames, and factors. These data structures are fundamental for managing and manipulating data in R. By mastering these data structures, you can efficiently handle different types of data and perform complex data analysis tasks in your R programs.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top