Hi, Try: fun1<- function(dat,Col1,Col2,number){ lst1<- split(dat,list(dat[,Col1],dat[,Col2])) lst2<- lst1[lapply(lst1,nrow)>0] res<- lapply(lst2,function(x) sample(x[,1],if(nrow(x)< number) nrow(x) else number,replace=FALSE)) res} head(fun1(Gpool,"LngtClas","SpCode",5),4) #$`40_49.MERLMER` #[1] 34 38 143 3 19 # #$`50_59.MERLMER` #[1] 20 112 115 104 77 # #$`60_69.MERLMER` #[1] 130 136 40 128 32 # #$`70_.MERLMER` #[1] 44 63 96
A.K. ----- Original Message ----- From: Xochitl CORMON <xochitl.cor...@ifremer.fr> To: r-help@r-project.org Cc: Sent: Wednesday, June 5, 2013 10:27 AM Subject: [R] sample {base} Hi all, I'm trying to randomly select sample numbers for length class groups (5 per length class). For this I'm using a loop FOR and the function sample () and specified a size for the sampling of 5. Unfortunately, one of the length class group does not contain 5 individuals. For me is not a big deal as I have others groups to complete. However it bothers me that the sampling function does not select any individuals in this group generating the error below : Error in sample(Gpool2$SampleNb[Gpool2$LngtClas == LngtClas[[i]] & Gpool2$SpCode == : can not take a sample larger than the population when 'replace = FALSE'. I understand why this error message appears but I was wondering if there is a way to select all the items present in the group even if it's not 5 (something like size =< 5). LngtClas <- list( "40_49", "50_59", "60_69", "70_") SpCode <- list ("POLLVIR ", "MERLMER") a <- as.character(sample(Gpool$SampleNb[Gpool$LngtClas == LngtClas[[4]] & Gpool$SpCode == SpCode[[2]]], size = 5, replace = FALSE)) You can find enclosed my dataset, Thank you for the help, Xochitl C. <>< <>< <>< <>< Xochitl CORMON +33 (0)3 21 99 56 84 Doctorante en sciences halieutiques PhD student in fishery sciences <>< <>< <>< <>< IFREMER Centre Manche Mer du Nord 150 quai Gambetta 62200 Boulogne-sur-Mer <>< <>< <>< <>< ______________________________________________ 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. ______________________________________________ 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.