Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Data Manipulation in R Using dplyr

DZone's Guide to

Data Manipulation in R Using dplyr

Learn about the primary functions of the dplyr package and the power of this package to transform and manipulate your datasets with ease in R.

· Big Data Zone ·
Free Resource

The open source HPCC Systems platform is a proven, easy to use solution for managing data at scale. Visit our Easy Guide to learn more about this completely free platform, test drive some code in the online Playground, and get started today.

In our previous article, we discussed the importance of data preprocessing and data management tasks in a data science pipeline. Also, we provided a brief explanation of the dplyr R package. This article will focus on the power of this package to transform your datasets with ease in R.

The dplyr package has five primary functions, commonly known as verbs. The verbs aids in performing most of the typical data manipulation operations, which we will discuss in the below sections.

Glimpse

The glimpse method can be used to see the columns of data and display some portion of the data for each variable that can be fit on a single line.

library(dplyr)
glimpse(mtcars)

Image title

Select 

select is used for choosing display variables based on the subset criteria. For instance, select(mtcars,mpg) displays the MPG column from the mtcars dataset: 

Image title

select(mtcars,mpg:disp) displays data in the columns from MPG to DISP, as shown in the below results:

Image title

select(mtcars, mpg:disp,-cyl) displays data in the columns from MPG to DISP without the CYL attribute:

Image title

Pipe Operator 

pipe operator(%>%) is used to tie multiple operations together. This makes it easy, especially when we need to perform various operations on a dataset to derive the results. 

We can read mtcars %>% select(wt,mpg,disp) from left to right — from the mtcars dataset, select WT, MPG, and DISP variables.

Image title

Mutate 

mutate is used to add new columns to a dataset. It is useful to create attributes that are functions of other attributes in the dataset. It's one of the essential tools that can come handy for new feature creation in the data preprocessing stage.

mtcars %>% mutate(nv=wt+mpg) creates a new attribute NV by adding WT and MPG together.

Image title

Filter 

The filter method selects cases based on their values.

mtcars %>% filter(hp>123) displays data whose HP values are more than 123.

Image title

Group_by

group_by is used to group data together based on one or more columns. It is often used along with a summarizing function to derive aggregated values:

mtcars %>% filter(hp>123) %>% group_by(am) 

Summarize

summarize is used to aggregate multiple values to a single value. It is most often used with the group_by function, and the output has one row per group:

mtcars %>% filter(hp>123) %>% group_by(am) %>% summarize(avg_wt=mean(wt)) 

This command calculates the average WT for each unique value in the AM column for mtcar data having HP > 123.

Image title

Arrange 

arrange is used to sort cases is ascending or descending order. The default is ascending order:

mtcars %>% filter(hp>123) %>% arrange(mpg) 

Image title

As shown below, use desc to order the data in descending order.

mtcars %>% filter(hp>123) %>% arrange(desc(mpg)) 

Image title

To learn more about dplyrsee here.

Though we can perform these tasks using base R functions, the verbs in dplyr are optimized for high performance, are easier to work with, and are consistent in the syntax. So, pick up a dataset, get started with dplyr, and share your data preparation story on DZone for other people to understand.

Managing data at scale doesn’t have to be hard. Find out how the completely free, open source HPCC Systems platform makes it easier to update, easier to program, easier to integrate data, and easier to manage clusters. Download and get started today.

Topics:
data science ,data manipulation ,big data ,r ,dplyr ,tutorial

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}