- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to remove first few rows from each group in R?
To remove first few rows from each group in R, we can use slice function of dplyr package after grouping with group_by function.
For example, if we have a data frame called df that contains a grouping column say Grp then we remove first 2 rows from each group by using the command given below −
df%>%group_by(Grp)%>%slice(3:n())
Example 1
Following snippet creates a sample data frame −
Group<-sample(c("India","China","UK"),20,replace=TRUE) Int_Score<-sample(20:50,20) df1<-data.frame(Group,Int_Score) df1
Output
The following dataframe is created −
Group Int_Score 1 UK 25 2 UK 28 3 India 38 4 China 49 5 China 33 6 India 42 7 India 21 8 UK 46 9 India 20 10 India 43 11 China 37 12 UK 40 13 India 32 14 China 26 15 India 41 16 UK 24 17 UK 48 18 UK 39 19 India 35 20 India 22
To load dplyr package and remove first two rows from each group in df1, add the following code to the above snippet −
library(dplyr) df1%>%group_by(Group)%>%slice(3:n()) # A tibble: 14 x 2 # Groups: Group [3]
Output
If you execute all the above given codes as a single program, it generates the following output −
Group Int_Score <chr> <int> 1 China 37 2 China 26 3 India 21 4 India 20 5 India 43 6 India 32 7 India 41 8 India 35 9 India 22 10 UK 46 11 UK 40 12 UK 24 13 UK 48 14 UK 39
Example 2
Following snippet creates a sample data frame −
Class<-sample(c("I","II","III"),20,replace=TRUE) Response<-rpois(20,5) df2<-data.frame(Class,Response) df2
Output
The following dataframe is created −
Class Response 1 II 1 2 I 7 3 III 10 4 I 3 5 III 3 6 II 2 7 I 6 8 III 3 9 II 5 10 I 6 11 I 4 12 III 3 13 II 4 14 III 1 15 III 4 16 III 8 17 III 8 18 III 4 19 III 4 20 I 6
To remove first two rows from each group in df2, add the following code to the above snippet −
df2%>%group_by(Class)%>%slice(3:n()) # A tibble: 14 x 2 # Groups: Class [3]
Output
If you execute all the above given codes as a single program, it generates the following output −
Class Response <chr> <int> 1 I 6 2 I 6 3 I 4 4 I 6 5 II 5 6 II 4 7 III 3 8 III 3 9 III 1 10 III 4 11 III 8 12 III 8 13 III 4 14 III 4
- Related Articles
- How to remove last few rows from an R data frame?
- How to remove empty rows from an R data frame?
- How to remove rows from data frame in R that contains NaN?
- How to change the first value for each group in data.table object in R?
- How to remove only the first duplicate row by group in an R data frame?
- How to get few rows from a Series in Pandas?
- How to remove all objects except one or few in R?
- How to remove only first row from a data.table object in R?
- How to remove first character from column name in R data frame?
- How to remove all rows having NA in R?
- How to remove multiple rows from an R data frame using dplyr package?
- How to remove rows that contain NAs in R matrix?
- How to remove rows based on blanks in a column from a data frame in R?
- How to extract first n values from each element in an R list?
- How to remove duplicates in series from each row in an R data frame?
