I have dataframe like below :-
x<-c(3,2,1,8,7,11,10,9,7,5,4) y<-c(\"a\",\"a\",\"a\", \"b\",\"b\",\"c\",\"c\",\"c\",\"c\",\"c\",\"c\") z<-c(2,2,2,1,1
One approach with data.table:
data.table
library(data.table) setDT(df) df[,.(inc=seq_len(.N)<=z,x,z),by=.(y)][inc==T ,-2] # y x z #1: a 3 2 #2: a 2 2 #3: b 8 1 #4: c 11 3 #5: c 10 3 #6: c 9 3