I want the output to be 1,1,1,1,7,7,7,7 The multiple values of AllMax are 1 and 7.
I think I've figured it out though, I added a loop at the end: test <- as.matrix(c(1,1,1,1,3,3,7,7,7,7)) Count <- tapply(test[,1], test[,1], length) # count for each value spp <- unique(test[,1]) Count1 <- as.data.frame(cbind(spp,Count)) Max <- max(Count1$Count) Count1$sppMax <- ifelse(Count1$Count >= Max, Count1$spp, 0) # only keep values that =Max Count2 <- subset(Count1, sppMax > 0) #get rid of values that are less than Max AllMax <- unique(Count2$sppMax) test2 <- test[0,] # set up the blank header, same format as test2 for(i in 1:length(AllMax)) { # run 1 round of the loop for each value in the vector AllMax tempset <- subset(test, test[,1] == AllMax[i]) #subset all the values in test2 column 1 that match the current value in the AllMax test2 <- rbind(test2,tempset) # bind the subset with the blank header (first round of the loop) or with subsets from previous values of AllMax (subsequent rounds) } -- View this message in context: http://r.789695.n4.nabble.com/Subset-based-on-multiple-values-tp4636159p4636176.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.