123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- //
- // Example code - use without restriction.
- //
- SimpleRandomSample(InFile,UID_Field,SampleSize,Result) := MACRO
- //build a table of the UIDs
- #uniquename(Layout_Plus_RecID)
- %Layout_Plus_RecID% := RECORD
- UNSIGNED8 RecID := 0;
- InFile.UID_Field;
- END;
- #UNIQUENAME(InTbl)
- %InTbl% := TABLE(InFile,%Layout_Plus_RecID%);
- //then assign unique record IDs to the table entries
- #uniquename(IDRecs)
- %Layout_Plus_RecID% %IDRecs%(%Layout_Plus_RecID% L, INTEGER C) := TRANSFORM
- SELF.RecID := C;
- SELF := L;
- END;
- #UNIQUENAME(UID_Recs)
- %UID_Recs% := PROJECT(%InTbl%,%IDRecs%(LEFT,COUNTER));
- //discover the number of records
- #UNIQUENAME(WholeSet)
- %WholeSet% := COUNT(InFile) : GLOBAL;
- //then generate the unique record IDs to include in the sample
- #UNIQUENAME(BlankSet)
- %BlankSet% := DATASET([{0}],{UNSIGNED8 seq});
- #UNIQUENAME(SelectEm)
- TYPEOF(%BlankSet%) %SelectEm%(%BlankSet% L, INTEGER c) := TRANSFORM
- SELF.seq := ROUNDUP(%WholeSet% * (((RANDOM() % 100000)+1) / 100000));
- END;
-
- #UNIQUENAME(selected)
- %selected% := NORMALIZE( %BlankSet%, SampleSize, %SelectEm%(LEFT, COUNTER));
- //then filter the original dataset by the selected UIDs
- #UNIQUENAME(SetSelectedRecs)
- %SetSelectedRecs% := SET(%UID_Recs%(RecID IN SET(%selected%,seq)),UID_Field);
- result := infile(UID_Field IN %SetSelectedRecs% );
- ENDMACRO;
- //*****************************************************
- SomeFile := DATASET([{'A1'},{'B1'},{'C1'},{'D1'},{'E1'},
- {'F1'},{'G1'},{'H1'},{'I1'},{'J1'},
- {'K1'},{'L1'},{'M1'},{'N1'},{'O1'},
- {'P1'},{'Q1'},{'R1'},{'S1'},{'T1'},
- {'U1'},{'V1'},{'W1'},{'X1'},{'Y1'},
- {'A2'},{'B2'},{'C2'},{'D2'},{'E2'},
- {'F2'},{'G2'},{'H2'},{'I2'},{'J2'},
- {'K2'},{'L2'},{'M2'},{'N2'},{'O2'},
- {'P2'},{'Q2'},{'R2'},{'S2'},{'T2'},
- {'U2'},{'V2'},{'W2'},{'X2'},{'Y2'},
- {'A3'},{'B3'},{'C3'},{'D3'},{'E3'},
- {'F3'},{'G3'},{'H3'},{'I3'},{'J3'},
- {'K3'},{'L3'},{'M3'},{'N3'},{'O3'},
- {'P3'},{'Q3'},{'R3'},{'S3'},{'T3'},
- {'U3'},{'V3'},{'W3'},{'X3'},{'Y3'},
- {'A4'},{'B4'},{'C4'},{'D4'},{'E4'},
- {'F4'},{'G4'},{'H4'},{'I4'},{'J4'},
- {'K4'},{'L4'},{'M4'},{'N4'},{'O4'},
- {'P4'},{'Q4'},{'R4'},{'S4'},{'T4'},
- {'U4'},{'V4'},{'W4'},{'X4'},{'Y4'}
- ],{STRING2 Letter});
- ds := DISTRIBUTE(SomeFile,HASH(letter[2]));
- SimpleRandomSample(ds,Letter,6, res1)
- SimpleRandomSample(ds,Letter,6, res2)
- SimpleRandomSample(ds,Letter,6, res3)
- SimpleRandomSample(ds,Letter,6, res4)
- SimpleRandomSample(ds,Letter,6, res5)
- SimpleRandomSample(ds,Letter,6, res6)
- SimpleRandomSample(ds,Letter,6, res7)
- SimpleRandomSample(ds,Letter,6, res8)
- SimpleRandomSample(ds,Letter,6, res9)
- SimpleRandomSample(ds,Letter,6, res10)
- SimpleRandomSample(ds,Letter,6, res11)
- SimpleRandomSample(ds,Letter,6, res12)
- SimpleRandomSample(ds,Letter,6, res13)
- SimpleRandomSample(ds,Letter,6, res14)
- SimpleRandomSample(ds,Letter,6, res15)
- SimpleRandomSample(ds,Letter,6, res16)
- SimpleRandomSample(ds,Letter,6, res17)
- SimpleRandomSample(ds,Letter,6, res18)
- SimpleRandomSample(ds,Letter,6, res19)
- SimpleRandomSample(ds,Letter,6, res20)
- SimpleRandomSample(ds,Letter,6, res21)
- SimpleRandomSample(ds,Letter,6, res22)
- SimpleRandomSample(ds,Letter,6, res23)
- SimpleRandomSample(ds,Letter,6, res24)
- SimpleRandomSample(ds,Letter,6, res25)
- SimpleRandomSample(ds,Letter,6, res26)
- SimpleRandomSample(ds,Letter,6, res27)
- SimpleRandomSample(ds,Letter,6, res28)
- SimpleRandomSample(ds,Letter,6, res29)
- SimpleRandomSample(ds,Letter,6, res30)
- SimpleRandomSample(ds,Letter,6, res31)
- SimpleRandomSample(ds,Letter,6, res32)
- SimpleRandomSample(ds,Letter,6, res33)
- SimpleRandomSample(ds,Letter,6, res34)
- SimpleRandomSample(ds,Letter,6, res35)
- SimpleRandomSample(ds,Letter,6, res36)
- SimpleRandomSample(ds,Letter,6, res37)
- SimpleRandomSample(ds,Letter,6, res38)
- SimpleRandomSample(ds,Letter,6, res39)
- SimpleRandomSample(ds,Letter,6, res40)
- OUTPUT(CHOOSEN(res1,5));
- OUTPUT(CHOOSEN(res2,5));
- OUTPUT(CHOOSEN(res3,5));
- OUTPUT(CHOOSEN(res4,5));
- OUTPUT(CHOOSEN(res5,5));
- OUTPUT(CHOOSEN(res6,5));
- OUTPUT(CHOOSEN(res7,5));
- OUTPUT(CHOOSEN(res8,5));
- OUTPUT(CHOOSEN(res9,5));
- OUTPUT(CHOOSEN(res10,5));
- OUTPUT(CHOOSEN(res11,5));
- OUTPUT(CHOOSEN(res12,5));
- OUTPUT(CHOOSEN(res13,5));
- OUTPUT(CHOOSEN(res14,5));
- OUTPUT(CHOOSEN(res15,5));
- OUTPUT(CHOOSEN(res16,5));
- OUTPUT(CHOOSEN(res17,5));
- OUTPUT(CHOOSEN(res18,5));
- OUTPUT(CHOOSEN(res19,5));
- OUTPUT(CHOOSEN(res20,5));
- OUTPUT(CHOOSEN(res21,5));
- OUTPUT(CHOOSEN(res22,5));
- OUTPUT(CHOOSEN(res23,5));
- OUTPUT(CHOOSEN(res24,5));
- OUTPUT(CHOOSEN(res25,5));
- OUTPUT(CHOOSEN(res26,5));
- OUTPUT(CHOOSEN(res27,5));
- OUTPUT(CHOOSEN(res28,5));
- OUTPUT(CHOOSEN(res29,5));
- OUTPUT(CHOOSEN(res30,5));
- OUTPUT(CHOOSEN(res31,5));
- OUTPUT(CHOOSEN(res32,5));
- OUTPUT(CHOOSEN(res33,5));
- OUTPUT(CHOOSEN(res34,5));
- OUTPUT(CHOOSEN(res35,5));
- OUTPUT(CHOOSEN(res36,5));
- OUTPUT(CHOOSEN(res37,5));
- OUTPUT(CHOOSEN(res38,5));
- OUTPUT(CHOOSEN(res39,5));
- OUTPUT(CHOOSEN(res40,5));
|