What is the tidyr spread() function in R?
Overview
The spread() function from the tidyr library can be helpful to spread a key-value pair across different columns. This function also helps reshape the data from long format to wide format.
This function works exactly opposite of gather(). So, it is used contrarily. Moreover, gather() is used to merge multiple columns and collapse them into key-value pairs. While spread() lays out each key-value pair across multiple columns.
In the above illustration, spread() will split key=genus and value=mean_weight into Baiomys, Chaetodipus and Dipodomys features. It will convert a long format data into a wider form.
Syntax
spread(data, key, value)
Parameters
data: This shows the name of the DataFrame.key: This shows the column whose values will become the names of variables or newly created columns.value: This contains the single column values for converting to multiple columns’ values. Thus, these values of a single column are used to fill the columns created through the specified key.
Return value
It returns a DataFrame or List, depending upon data (argument value).
Code
Let's discuss a coding example regarding the spread method. We'll create a DataFrame and then invoke spread() to separate gather information.
# Demo program to how spread() working# including tidyr librarylibrary("tidyr")# creating a DataFramedf <- data.frame(player_category=rep(c('A', 'B'), each=4),experience_in_years=rep(c(1, 1, 2, 2), times=2),statistics=rep(c('points', 'assists'), times=4),amount=c(13, 7, 10, 3, 21, 8, 58, 2))# show DataFrame on consoleprint(df)# Invoking spread() function# spreading statistics column across multiple columnsspread(df, key=statistics, value=amount)
Explanation
Line 5: We create a DataFrame that contains players' records.
Line 10: We print the above-created DataFrame on the console.
Line 13: We use the
spread()method to split the values of the statistics column into different unique columns.