What about using instead size = min(5, length(Gpool$SampleNb[Gpool$LngtClas == LngtClas[[4]] & Gpool$SpCode == SpCode[[2]]])
that would make sure your sample is either the size of the data or 5. Sarah On Wed, Jun 5, 2013 at 10:27 AM, Xochitl CORMON <xochitl.cor...@ifremer.fr> wrote: > 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. -- Sarah Goslee http://www.functionaldiversity.org ______________________________________________ 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.