Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. DATA perm;
  2.  
  3. * Store CRP values in ARRAYs;
  4. ARRAY c{*} crp1-crp16; *Mit c{*} legt man ein Arry mit unbekannter größe an, mit crp1-crp16 werden die variablen crp1,crp2... erstellt;
  5.  
  6. RETAIN crp1-crp16; *Hier werden ein paar Variablen erstellt, welche bei jedem durchlauf durch RETAIN ihren Wert behalten und dann weiter genutzt werden können;
  7. RETAIN i 0;
  8. RETAIN eof 0;
  9. RETAIN totsum 0;
  10. RETAIN npermutationen 0; *Weiss nicht wofür das ist, Variable wird nie benutzt;
  11.  
  12. DO UNTIL(eof);
  13. SET CRP END=eof; *Mit set wird die variable gesetzt durch welche iteriert werden soll, mit end bestimmt man den letzten wert;
  14. i = i + 1; *Eine Zahl die man einfach von 0 bis x hochzählt;
  15. c{i} = CRP; *Hier wird an die i-te Position im Array der CRP Wert des aktuellen schleifendurchlaufs geschrieben;
  16. totsum = totsum + CRP; *Dadurch das totsum mit RETAIN definiert wurde wird hier immer wieder der crp des durchlaufes aufaddiert;
  17. END; *Das ganze ist einfach dafür die totsum zu bestimmen;
  18.  
  19. * The indices i1-i8 determine the CRP values for the female group. The sum of the male group is determined as TotalSum-sumF;
  20. DO i1 = 1 TO 9;
  21. DO i2 = i1+1 TO 10;
  22. DO i3 = i2+1 TO 11;
  23. DO i4 = i3+1 TO 12;
  24. DO i5 = i4+1 TO 13;
  25. DO i6 = i5+1 TO 14;
  26. DO i7 = i6+1 TO 15;
  27. DO i8 = i7+1 TO 16; *Ist bisschen komplex, wichtig ist das das hier im Inneren zunächst ausgeführt wird mit i8 = i7+1, und dann i8 = i7+2... +16 und die schleifen sich dann erst wieder nach außen arbeiten;
  28. sumF = c{i1}+ c{i2}+c{i3}+c{i4}+c{i5}+c{i6}+c{i7}+c{i8}; *Hier wird für jeden DO-Schleife jeweils der Wert aus dem Array gelesen;
  29. sumM = totsum - sumF; *Totale Summe - Frauen Summe = Männer Summe;
  30. d = (sumF - sumM)/8;
  31. if abs(d) >= abs(&samplediff.) then indi=1; else indi=0; *Wenn Absolute Wert von d >= der Wert vom Sample dann indi = 1, sonst indi=0;
  32. KEEP i1 - i8 d indi;
  33. OUTPUT;
  34. END;
  35. END;
  36. END;
  37. END;
  38. END;
  39. END;
  40. END;
  41. END;
  42. RUN;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement