Table of Contents
The cast() function in R is used to reshape data frames from “long” to “wide” format or vice versa. It allows for the manipulation of data by grouping and summarizing variables, making it easier to analyze and visualize the data. This function is especially useful for organizing and presenting data in a more concise and understandable manner. By specifying the desired format, variables, and functions, the cast() function can efficiently transform the data frame into the desired format. Overall, the cast() function is a powerful tool for data manipulation and can greatly enhance the data analysis process in R.
Use the cast() Function in R
You can use the cast() functions from the reshape2 package in R to convert a data frame from a long format to a wide format.
A wide format contains values that do not repeat in the first column.
A long format contains values that do repeat in the first column.
For example, consider the following two datasets that contain the exact same data expressed in different formats:
The cast() function uses the following basic syntax to convert a data frame in a long format to a wide format:
cast(data, formula, fun.aggregate)
where:
- data: Name of the data frame
- formula: Specifies variables to cast into columns
- fun.aggregate: An aggregate function to use (optional
Note: You should use the dcast function if you’d like the output to be a data frame or the acast function if you’d like the output to be a vector, matrix or array instead.
In the following example we’ll show how to use the dcast function to convert a data frame from a long format to a wide format.
Example: How to Use cast() in R
Suppose we have the following data frame in R that is currently in a long format:
#create data frame in long format df <- data.frame(team=rep(c('A', 'B', 'C', 'D'), times=3), variable=rep(c('points', 'assists', 'rebounds'), each=4), points=c(88, 91, 99, 94, 12, 17, 24, 28, 22, 28, 30, 31)) #view data frame df team variable points 1 A points 88 2 B points 91 3 C points 99 4 D points 94 5 A assists 12 6 B assists 17 7 C assists 24 8 D assists 28 9 A rebounds 22 10 B rebounds 28 11 C rebounds 30 12 D rebounds 31
We can use the dcast() function to quickly convert the data frame to a wide format:
library(reshape2) #use cast() to convert data frame from long to wide format wide_df <- dcast(df, team ~ variable) #view wide data frame wide_df team assists points rebounds 1 A 12 88 22 2 B 17 91 28 3 C 24 99 30 4 D 28 94 31
Notice that the data frame is now in a wide format.
Related:
Additional Resources
The following tutorials explain how to perform other common tasks in R: