dat<-data.frame(
ID=c("A2BR-01","A2BR-102","A2BR-6","A2BR-10",
"RRXX-01","RRXX-50","RRXX-03","RRXX-145",
"RRXX-33","RRXX-74","AA1Q-05","XCVQ-09","XCVQ-1"),
var1=c(1,2,4,3,3,3,2,2,2,3,3,2,3),
stringsAsFactors = FALSE)
#sample
sample_idx = tapply(rownames(dat),
substring(dat$ID,1,4),sample,size=1)
dat[sample_idx,]
#first
first_idx = tapply(rownames(dat),
substring(dat$ID,1,4),"[",1)
dat[first_idx,]