Tilapia<-5 Mystus_singaringan<-c(1,2,2,2) Osteochilus_vittatus<-c(26,30,11,2,28,6,19,12,4,4,18,13,29,21,9,8,21,19,28) Henicorhynchus_siamensis<-c(46,22,33,28,50,42,31,4,13,8,11,8,18) names<-c("Tilapia","Mystus","Osteochilus","Henicorhynchus") wize<- lengths(list(Tilapia,Mystus_singaringan,Osteochilus_vittatus,Henicorhynchus_siamensis)) fishnames<-c(rep(names,wize)) metacercaria<-c(Tilapia,Mystus_singaringan,Osteochilus_vittatus,Henicorhynchus_siamensis) df<- data.frame(fishnames,metacercaria) head(df) Now use tapply to summarise things for each species, for example, the mean for each species tapply(df$metacercaria,df$fishnames,mean) tapply(df$metacercaria,df$fishnames,range)