#Typical call is %'a:\stat519\sampwor' c1 c2 k1 c3 where c1 contains the #numeric labels for each population element, c2 contains the #sampling weights (often the size or approximate size of each sample point), #k1 is the sample size and c3 is the output sample column. macro sampwor labcol sizecol nsamp samcol mcolumn sizecol samcol labcol holdcol lab1col size1col mconstant nsamp i samind copy labcol lab1col copy sizecol size1col let size1col=size1col/sum(size1col) do i=1:nsamp rand 1 holdcol; discrete lab1col size1col. let samind=holdcol copy size1col lab1col size1col lab1col; omit lab1col=samind. let size1col=size1col/sum(size1col) let samcol(i)=samind enddo endmacro