With so much data around us in today's world, dealing with them becomes tough. In this case, the Dplyr data frame package from R acts as a lifesaver and that package stands out as a powerful and versatile tool. for data manipulation. In R Programming Language package has many functions and among them, slice() is particularly useful for extracting specific rows from any data frame based on their indexes (positions).
In this article, we will look at the details of this slice() function and explore how can it help in the data manipulation process.
Introduction to Slice() function in dplyr
The slice() function in dplyr allows users to subset data frames by selecting specific rows based on their indexes or positions. In simple words, as the word slice suggests, it is like taking a piece or part of a data frame using the position of data. Using this function, we could get any desired part of the dataframe and we could use that part for some other purposes.
This function has a really simple syntax and integrates easily with other dplyr functions, which makes it an invaluable tool for data wrangling tasks. The basic syntax for the slice() function can be written as.
slice(.data, ..., .preserve = FALSE)
here,
- data -represents any data frame or tibble to which needs to be sliced
- ... -specifies how we want to slice that particular dataframe
- preserve -is a parameter which is used to preserve the grouping structure whose default value is FALSE
Now, let us look into how we can use this slice() function by looking at the steps.
Steps to implement Slicing in R
Now, let us know the steps to implement this slice() method in R.
Step 1: Install and load the packakges
The first step is to install and load the dplyr package which has this function into the environment.
install.packages('dplyr')
library(dplyr)
Step 2: Data preparation
In this step, we now need data to slice. So, this step is data preparation.
df <- data.frame(
id = c(101, 102, 103, 104, 105),
name = c('Madhu', 'Ram', 'Krishna', 'Radha', 'Lakshmi'),
gender = c('F', 'M', 'M', 'F', 'F'),
dob = as.Date(c('1992-05-15', '1988-12-31', '1995-07-20', '1990-03-10', '1987-11-05')),
state = c('CA', 'NY', 'TX', 'FL', 'WA'),
stringsAsFactors = FALSE
)
The above code shows how to create a basic dataframe with multiple rows and columns in R. We used data.frame() to create it. We can either create our own dataframe or else, we can use an already existing dataset and work on it.
Step 3: Slice operation
Now it is time to perform slice operation on the data frame.
df2 <- df %>% slice(2,3)
In this case the operation in slice(), after which the result is stored in new variable df2. The parameters inside the slice() function denotes the start and end indexes for slicing, where both are included.
Note: In the above code, we used an operator called pipe (%>%) in dplyr package. The operator takes the input from the left hand dataframe and performs the operation on the right side.
These were the steps involved in using the slice() function. Now, let us dive into types of slice() functions in dplyr package which make data analysis much more simpler.
Types of Slicing Methods
There are various other slicing methods in dplyr package, that are available to cater to different needs, like selecting rows of a dataframe by index, choosing the first or last rows, extracting the minimum or maximum values from a column, or randomly sampling rows from a dataset.
Now, let us see each type in detail with an example. I will use the dataset called 'mtcars' which is available by default in R studio to demonstrate each slicing method.
1. slice(): Slices the dataframe by row index
This function is helpful to slice the dataframe by using the row indexes. We can either slice one row, rows in a range or even rows which are non-continuous, i.e, multiple rows. Below is the syntax for it.
one_row <- slice(df, n) # Slice nth row
rows_in_range <- slice(df, n1:n2) #Slice rows in range n1 to n2
multiple_rows <- slice(df, c(n1,n3,n6)) #Slice non-continuous rows using vector
R
#install and load package
install.packages('dplyr')
library(dplyr)
#load dataset to df variable
df <- mtcars
# Slice nth row
one_row <- slice(df, 2)
cat("The 2nd row is:\n")
print(one_row)
# Slice rows in range n1 to n2
rows_in_range <- slice(df, 2:6)
cat("The rows in the range of 2 and 6 are:\n")
print(rows_in_range)
multiple_rows <- slice(df, c(4,6,8))
cat("The 4th, 6th, 8th rows are:\n")
print(multiple_rows)
Output:
The 2nd row is:
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 Wag 21 6 160 110 3.9 2.875 17.02 0 1 4 4
The rows in the range of 2 and 6 are:
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
The 4th, 6th, 8th rows are:
mpg cyl disp hp drat wt qsec vs am gear carb
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 0 3 1
Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 0 3 1
Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 0 4 2
2. slice_head(): Select the top rows
This function helps us to get the top part of any dataframe. Here we can even specify how many rows in top we actually want to slice using an argument called 'n'.
head_df <- slice_head(df, n = number) # Select the first n rows
print(head_df)
R
head_df <- slice_head(df,n=4)
cat("The first 4 rows are: ")
print(head_df)
Output:
The first 4 rows are:
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
3. slice_tail(): Select the bottom rows
This function is similar to the above but is for the bottom part of the dataframe.
tail_df <- slice_tail(df, n = number) # Select the last rows
print(tail_df)
R
tail_df <- slice_tail(df,n=4)
cat("The last 4 rows are: ")
print(tail_df)
Output:
The last 4 rows are:
mpg cyl disp hp drat wt qsec vs am gear carb
Ford Pantera L 15.8 8 351 264 4.22 3.17 14.5 0 1 5 4
Ferrari Dino 19.7 6 145 175 3.62 2.77 15.5 0 1 5 6
Maserati Bora 15.0 8 301 335 3.54 3.57 14.6 0 1 5 8
Volvo 142E 21.4 4 121 109 4.11 2.78 18.6 1 1 4 2
4. slice_min(): Select the minimum of a column
As the function specifies, it gets the rows with minimum values from the dataframe, where we can specify based on the order of which column we need to slice the dataframe.
min_df <- slice_min(df, order_by = B) # Select the row with the minimum value in column 'B'
print(min_df)
R
# Select the row with the minimum value in column 'mpg'
min_df <- slice_min(df, order_by = mpg)
cat("The row with the least mpg: ")
print(min_df)
Output:
The row with the lease mpg:
mpg cyl disp hp drat wt qsec vs am gear carb
Cadillac Fleetwood 10.4 8 472 205 2.93 5.250 17.98 0 0 3 4
Lincoln Continental 10.4 8 460 215 3.00 5.424 17.82 0 0 3 4
5. slice_max(): Select the maximum of a column
This function is opposite to the slice_min() function. This selects the rows with maximum values based on the order of one particular column.
max_df <- slice_max(df, order_by = B) # Select the row with the maximum value in column 'B'
print(max_df)
R
# Select the row with the maximum value in column 'B'
max_df <- slice_max(df, order_by = disp)
cat("The row with the maximum disp: ")
print(max_df)
Output:
The row with the maximum disp
mpg cyl disp hp drat wt qsec vs am gear carb
Cadillac Fleetwood 10.4 8 472 205 2.93 5.25 17.98 0 0 3 4
6. slice_random(): Select random rows
As the term random says that this method slices random rows from the dataframe. Here, also a parameter called 'n' can be given to specify how many rows must be selected.
random_df <- slice_sample(df, n = number) # select n random rows
print(random_df)
R
random_df <- slice_sample(df, n = 3)
cat("3 random rows are: ")
print(random_df)
Output:
3 random rows are:
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 1 4 2
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
More Examples on Slice()
Now, let us look at the examples of the slicing and where it is used in data analysis.
For suppose we wanted to find out the rows with a particular condition. Let's say we have a dataframe of student names and their scores. And we need to get all the student names with their score whose score is above 85%. So, firstly let us create a dataframe, after which we are going to write the slice function to slice the dataframe based on the condition which is score>85.
R
# Create a dataframe
class_score <- data.frame(
ID = 1:5,
Name = c("Krishna", "Sony", "Priya", "Rahul", "Rama"),
Score = c(85, 92, 78, 88, 95)
)
# Slice the dataframe based on condition
top_scorers <- class_score %>% slice(which(Score > 85))
# Print the top scorers
print(top_scorers)
Output:
ID Name Score
1 1 Krishna 85
2 2 Sony 92
3 3 Priya 78
4 4 Rahul 88
5 5 Rama 95
dataframe based on condition that score > 85
ID Name Score
1 2 Sony 92
2 4 Rahul 88
3 5 Rama 95
We created a dataframe called class_score with columns like id, names, and scores respectively. Then we used the pipe operator as discussed before which uses the class_score dataframe to slice from it and store in new variable. The parameter of the slice() function is which(). This part of code returns the indices where the condition Score > 85 is true. So, it returns the position of elements that are True. Hence, in this way we can use the slice function.
Example 2: Let us now take the example dataset of cricket teams and their scores. Our task is to find the top teams from the dataframe.
R
# cricket teams dataframe
cricket_data <- data.frame(
Team = c("India", "Australia", "England", "Pakistan", "South Africa"),
Score = c(320, 289, 275, 241, 305)
)
cricket_data
# Arrange data in descending order of scores and then select the top 3 rows
top_scores <- cricket_data %>% arrange(desc(Score)) %>% slice(1:3)
# Display the top_scores dataset
print("Top 3 Scores:")
print(top_scores)
Output:
Team Score
1 India 320
2 Australia 289
3 England 275
4 Pakistan 241
5 South Africa 305
[1] "Top 3 Scores:"
Team Score
1 India 320
2 South Africa 305
3 Australia 289
Here, we took a dataframe for the cricket teams and their scores and we tried to find the top scorers. Here also we used the pipe operator from dplyr. Firstly, we arranged the dataframe in decreasing order according to the column 'Score', after which we used the slice() function to get the top three scores.
Conclusion
The slice() function in dplyr package of R is really a powerful tool to extract specific rows according to our need from any dataframe based on their positions. It is really easy and simple to use function which can be mastered by anyone with practice. By mastering this function, data anlaysts and scientists can improve their data wrangling tasks to unlock deeper insights from the datasets.
Similar Reads
R Tutorial | Learn R Programming Language R is an interpreted programming language widely used for statistical computing, data analysis and visualization. R language is open-source with large community support. R provides structured approach to data manipulation, along with decent libraries and packages like Dplyr, Ggplot2, shiny, Janitor a
4 min read
Introduction
R Programming Language - IntroductionR is a programming language and software environment that has become the first choice for statistical computing and data analysis. Developed in the early 1990s by Ross Ihaka and Robert Gentleman, R was built to simplify complex data manipulation and create clear, customizable visualizations. Over ti
4 min read
Interesting Facts about R Programming LanguageR is an open-source programming language that is widely used as a statistical software and data analysis tool. R generally comes with the Command-line interface. R is available across widely used platforms like Windows, Linux, and macOS. Also, the R programming language is the latest cutting-edge to
4 min read
R vs PythonR Programming Language and Python are both used extensively for Data Science. Both are very useful and open-source languages as well. For data analysis, statistical computing, and machine learning Both languages are strong tools with sizable communities and huge libraries for data science jobs. A th
5 min read
Environments in R ProgrammingThe environment is a virtual space that is triggered when an interpreter of a programming language is launched. Simply, the environment is a collection of all the objects, variables, and functions. Or, Environment can be assumed as a top-level object that contains the set of names/variables associat
3 min read
Introduction to R StudioR Studio is an integrated development environment(IDE) for R. IDE is a GUI, where we can write your quotes, see the results and also see the variables that are generated during the course of programming. R Studio is available as both Open source and Commercial software.R Studio is also available as
4 min read
How to Install R and R Studio?Installing R and RStudio is the first step to working with R for data analysis, statistical modeling, and visualizations. This article will guide you through the installation process on both Windows and Ubuntu operating systemsWhy use R Studio? RStudio is an open-source integrated development enviro
4 min read
Creation and Execution of R File in R StudioR Studio is an integrated development environment (IDE) for R. IDE is a GUI, where you can write your quotes, see the results and also see the variables that are generated during the course of programming. R is available as an Open Source software for Client as well as Server Versions. 1. Creating a
5 min read
Clear the Console and the Environment in R StudioR Studio is an integrated development environment(IDE) for R. IDE is a GUI, where you can write your quotes, see the results and also see the variables that are generated during the course of programming. Clearing the Console We Clear console in R and RStudio, In some cases when you run the codes us
2 min read
Hello World in R ProgrammingWhen we start to learn any programming languages we do follow a tradition to begin HelloWorld as our first basic program. Here we are going to learn that tradition. An interesting thing about R programming is that we can get our things done with very little code. Before we start to learn to code, le
2 min read
Fundamentals of R
Basic Syntax in R ProgrammingR is the most popular language used for Statistical Computing and Data Analysis with the support of over 10, 000+ free packages in CRAN repository. Like any other programming language, R has a specific syntax which is important to understand if you want to make use of its features. This article assu
3 min read
Comments in RIn R Programming Language, Comments are general English statements that are typically written in a program to describe what it does or what a piece of code is designed to perform. More precisely, information that should interest the coder and has nothing to do with the logic of the code. They are co
3 min read
R-OperatorsOperators are the symbols directing the compiler to perform various kinds of operations between the operands. Operators simulate the various mathematical, logical, and decision operations performed on a set of Complex Numbers, Integers, and Numericals as input operands. R supports majorly four kinds
5 min read
R-KeywordsR keywords are reserved words that have special meaning in the language. They help control program flow, define functions, and represent special values. We can check for which words are keywords by using the help(reserved) or ?reserved function.Rhelp(reserved) # or "?reserved"Output:Reserved Key Wor
2 min read
R-Data TypesData types in R define the kind of values that variables can hold. Choosing the right data type helps optimize memory usage and computation. Unlike some languages, R does not require explicit data type declarations while variables can change their type dynamically during execution.R Programming lang
5 min read
Variables
R Variables - Creating, Naming and Using Variables in RA variable is a memory location reserved for storing data, and the name assigned to it is used to access and manipulate the stored data. The variable name is an identifier for the allocated memory block, which can hold values of various data types during the programâs execution.In R, variables are d
5 min read
Scope of Variable in RIn R, variables are the containers for storing data values. They are reference, or pointers, to an object in memory which means that whenever a variable is assigned to an instance, it gets mapped to that instance. A variable in R can store a vector, a group of vectors or a combination of many R obje
5 min read
Dynamic Scoping in R ProgrammingR is an open-source programming language that is widely used as a statistical software and data analysis tool. R generally comes with the Command-line interface. R is available across widely used platforms like Windows, Linux, and macOS. Also, the R programming language is the latest cutting-edge to
5 min read
Lexical Scoping in R ProgrammingLexical scoping means R decides where to look for a variable based on where the function was written (defined), not where it is called.When a function runs and it sees a variable, R checks:Inside the function, is the variable there?If not, it looks in the environment where the function was created.T
4 min read
Input/Output
Control Flow
Control Statements in R ProgrammingControl statements are expressions used to control the execution and flow of the program based on the conditions provided in the statements. These structures are used to make a decision after assessing the variable. In this article, we'll discuss all the control statements with the examples. In R pr
4 min read
Decision Making in R Programming - if, if-else, if-else-if ladder, nested if-else, and switchDecision making in programming allows us to control the flow of execution based on specific conditions. In R, various decision-making structures help us execute statements conditionally. These include:if statementif-else statementif-else-if laddernested if-else statementswitch statement1. if Stateme
3 min read
Switch case in RSwitch case statements are a substitute for long if statements that compare a variable to several integral values. Switch case in R is a multiway branch statement. It allows a variable to be tested for equality against a list of values. Switch statement follows the approach of mapping and searching
2 min read
For loop in RFor loop in R Programming Language is useful to iterate over the elements of a list, data frame, vector, matrix, or any other object. It means the for loop can be used to execute a group of statements repeatedly depending upon the number of elements in the object. It is an entry-controlled loop, in
5 min read
R - while loopWhile loop in R programming language is used when the exact number of iterations of a loop is not known beforehand. It executes the same code again and again until a stop condition is met. While loop checks for the condition to be true or false n+1 times rather than n times. This is because the whil
5 min read
R - Repeat loopRepeat loop in R is used to iterate over a block of code multiple number of times. And also it executes the same code again and again until a break statement is found. Repeat loop, unlike other loops, doesn't use a condition to exit the loop instead it looks for a break statement that executes if a
2 min read
goto statement in R ProgrammingGoto statement in a general programming sense is a command that takes the code to the specified line or block of code provided to it. This is helpful when the need is to jump from one programming section to the other without the use of functions and without creating an abnormal shift. Unfortunately,
2 min read
Break and Next statements in RIn R Programming Language, we require a control structure to run a block of code multiple times. Loops come in the class of the most fundamental and strong programming concepts. A loop is a control statement that allows multiple executions of a statement or a set of statements. The word âloopingâ me
3 min read
Functions
Functions in R ProgrammingA function accepts input arguments and produces the output by executing valid R commands that are inside the function. Functions are useful when we want to perform a certain task multiple times.In R Programming Language when we are creating a function the function name and the file in which we are c
5 min read
Function Arguments in R ProgrammingArguments are the parameters provided to a function to perform operations in a programming language. In R programming, we can use as many arguments as we want and are separated by a comma. There is no limit on the number of arguments in a function in R. In this article, we'll discuss different ways
4 min read
Types of Functions in R ProgrammingA function is a set of statements orchestrated together to perform a specific operation. A function is an object so the interpreter is able to pass control to the function, along with arguments that may be necessary for the function to accomplish the actions. The function in turn performs the task a
6 min read
Recursive Functions in R ProgrammingRecursion, in the simplest terms, is a type of looping technique. It exploits the basic working of functions in R. Recursive Function in R: Recursion is when the function calls itself. This forms a loop, where every time the function is called, it calls itself again and again and this technique is
4 min read
Conversion Functions in R ProgrammingSometimes to analyze data using R, we need to convert data into another data type. As we know R has the following data types Numeric, Integer, Logical, Character, etc. similarly R has various conversion functions that are used to convert the data type. In R, Conversion Function are of two types: Con
4 min read
Data Structures
Data Structures in R ProgrammingA data structure is a particular way of organizing data in a computer so that it can be used effectively. The idea is to reduce the space and time complexities of different tasks. Data structures in R programming are tools for holding multiple values. Râs base data structures are often organized by
4 min read
R StringsStrings are a bunch of character variables. It is a one-dimensional array of characters. One or more characters enclosed in a pair of matching single or double quotes can be considered a string in R. It represents textual content and can contain numbers, spaces, and special characters. An empty stri
6 min read
R-VectorsR Vectors are the same as the arrays in R language which are used to hold multiple data values of the same type. One major key point is that in R Programming Language the indexing of the vector will start from '1' and not from '0'. We can create numeric vectors and character vectors as well. R - Vec
4 min read
R-ListsA list in R programming is a generic object consisting of an ordered collection of objects. Lists are one-dimensional, heterogeneous data structures. The list can be a list of vectors, a list of matrices, a list of characters, a list of functions, and so on. A list in R is created with the use of th
6 min read
R - ArrayArrays are important data storage structures defined by a fixed number of dimensions. Arrays are used for the allocation of space at contiguous memory locations.In R Programming Language Uni-dimensional arrays are called vectors with the length being their only dimension. Two-dimensional arrays are
7 min read
R-MatricesR-matrix is a two-dimensional arrangement of data in rows and columns. In a matrix, rows are the ones that run horizontally and columns are the ones that run vertically. In R programming, matrices are two-dimensional, homogeneous data structures. These are some examples of matrices:R - MatricesCreat
10 min read
R-FactorsFactors in R Programming Language are used to represent categorical data, such as "male" or "female" for gender. While they might seem similar to character vectors, factors are actually stored as integers with corresponding labels. Factors are useful when dealing with data that has a fixed set of po
4 min read
R-Data FramesR Programming Language is an open-source programming language that is widely used as a statistical software and data analysis tool. Data Frames in R Language are generic data objects of R that are used to store tabular data. Data frames can also be interpreted as matrices where each column of a matr
6 min read
Object Oriented Programming
R-Object Oriented ProgrammingIn R, Object-Oriented Programming (OOP) uses classes and objects to manage program complexity. R is a functional language that applies OOP concepts. Class is like a car's blueprint, detailing its model, engine and other features. Based on this blueprint, we select a car, which is the object. Each ca
7 min read
Classes in R ProgrammingClasses and Objects are core concepts in Object-Oriented Programming (OOP), modeled after real-world entities. In R, everything is treated as an object. An object is a data structure with defined attributes and methods. A class is a blueprint that defines a set of properties and methods shared by al
3 min read
R-ObjectsIn R programming, objects are the fundamental data structures used to store and manipulate data. Objects in R can hold different types of data, such as numbers, characters, lists, or even more complex structures like data frames and matrices.An object in R is important an instance of a class and can
3 min read
Encapsulation in R ProgrammingEncapsulation is the practice of bundling data (attributes) and the methods that manipulate the data into a single unit (class). It also hides the internal state of an object from external interference and unauthorized access. Only specific methods are allowed to interact with the object's state, en
3 min read
Polymorphism in R ProgrammingR language implements parametric polymorphism, which means that methods in R refer to functions, not classes. Parametric polymorphism primarily lets us define a generic method or function for types of objects we havenât yet defined and may never do. This means that one can use the same name for seve
6 min read
R - InheritanceInheritance is one of the concept in object oriented programming by which new classes can derived from existing or base classes helping in re-usability of code. Derived classes can be the same as a base class or can have extended features which creates a hierarchical structure of classes in the prog
7 min read
Abstraction in R ProgrammingAbstraction refers to the process of simplifying complex systems by concealing their internal workings and only exposing the relevant details to the user. It helps in reducing complexity and allows the programmer to work with high-level concepts without worrying about the implementation.In R, abstra
3 min read
Looping over Objects in R ProgrammingOne of the biggest issues with the âforâ loop is its memory consumption and its slowness in executing a repetitive task. When it comes to dealing with a large data set and iterating over it, a for loop is not advised. In this article we will discuss How to loop over a list in R Programming Language
5 min read
S3 class in R ProgrammingAll things in the R language are considered objects. Objects have attributes and the most common attribute related to an object is class. The command class is used to define a class of an object or learn about the classes of an object. Class is a vector and this property allows two things:  Objects
8 min read
Explicit Coercion in R ProgrammingCoercing of an object from one type of class to another is known as explicit coercion. It is achieved through some functions which are similar to the base functions. But they differ from base functions as they are not generic and hence do not call S3 class methods for conversion. Difference between
3 min read
Error Handling