R Data Frame

A DataFrame is a fundamental data structure in the R programming language, widely used for data manipulation, analysis, and visualization. It can be thought of as a two-dimensional table, similar to a spreadsheet or a SQL table. Each column in a DataFrame can contain different types of data, such as numbers, strings, factors, dates, and more. DataFrames are part of the "tidyverse," a collection of R packages designed to work seamlessly together for data analysis and visualization tasks. Dataframes are created using the data.frame() function. The data.frame() function takes a list of vectors as its argument and returns a dataframe.

Creating DataFrames

You can create a DataFrame using the data.frame() function or by using functions from the tidyverse package, such as read.csv(), read_excel(), etc.

# Creating a DataFrame using data.frame() df <- data.frame( Name = c("Dean", "Willy", "Mary"), Age = c(25, 30, 28), Score = c(95, 82, 70) )

Accessing DataFrames

You can access columns of a DataFrame using the $ operator or by using indexing like [row, column].

# Accessing columns using $ names <- df$Name ages <- df$Age print(names) print(ages) # Accessing specific elements using indexing score_willy <- df[2, "Score"] print(score_willy) #Output: [1] "Dean" "Willy" "Mary" [1] 25 30 28 [1] 82

Basic Operations

You can perform basic operations on DataFrames, such as filtering, sorting, and summarizing data.

Filtering rows
# Filtering rows where Age is greater than 25 filtered_df <- df[df$Age > 25, ] print(filtered_df) #Output: Name Age Score 2 Willy 30 82 3 Mary 28 70
Adding and Modifying Data

You can add new columns or modify existing ones easily.

df$Grade <- c("A", "B", "C")

Summary Functions

You can use summary functions to calculate statistics on the columns of a DataFrame.

Calculating mean and standard deviation
avg_age <- mean(df$Age) sd_score <- sd(df$Score) print(avg_age) print(sd_score) #Output: [1] 27.66667 [1] 12.50333

Grouping and Aggregation

You can group your DataFrame by one or more columns and perform aggregation operations on those groups.

Grouping by Age and calculating average score
library(dplyr) # Part of the tidyverse grouped_df <- df %>% group_by(Age) %>% summarize(avg_score = mean(Score))

Merging DataFrames

You can merge or join DataFrames based on common columns.

df1 <- data.frame(ID = c(1, 2, 3), Value = c(10, 20, 30)) df2 <- data.frame(ID = c(2, 3, 4), Value = c(25, 35, 45)) merged_df <- merge(df1, df2, by = "ID", suffixes = c("_df1", "_df2")) #Output: ID Value_df1 Value_df2 1 2 20 25 2 3 30 35


You can create various types of plots and visualizations directly from DataFrames using packages like ggplot2.

Creating a scatter plot
library(ggplot2) ggplot(df, aes(x = Age, y = Score)) + geom_point()

Points to remember:

  1. Dataframes can be used to represent data that is naturally tabular, such as a spreadsheet or a database table.
  2. Dataframes can be used to perform mathematical operations on data, such as adding, subtracting, multiplying, and dividing.
  3. Dataframes can be used to sort and filter data.


Dataframes are a powerful data structure that can be used to store and organize data in R. By understanding how to create and use dataframes, you can write code that is more efficient and readable.