Daten
data lb; length lbtest $40; lbtest='Hematocrit'; output; lbtest='Leukocytes'; output; lbtest='HDL Cholesterol/Total Cholesterol'; output; run;
Programm
proc format; value $lbtest 'Hematocrit' ='HCT' 'Leukocytes' ='WBC' 'HDL Cholesterol'='HDL'; value $lbtestcd 'HCT'='Hematocrit' 'WBC'='Leukocytes' 'HDL'='HDL Cholesterol'; run; data lb_new; set lb; length lbtestcd $40; lbtestcd=put(lbtest,$lbtest.); run;
Die Variable lbtestcd
wird mit Hilfe der Variable lbtest
und dem Format $lbtest.
erstellt.
Ziel ist es, aus dem langen Namen des Labortests dessen Kurzbezeichnung zu ermitteln.
Hematocrit
wird zuHCT
Leukozytes
wird zuWBC
- Der Wert "
HDL Cholesterol/Total Cholesterol
" ist im Format$lbtest.
nicht vorhanden. Es wird zu "HDL
", was eine andere Bedeutung hat. Entsprechend dem Format$lbtestcd.
bedeutet diesHDL Cholesterol
.
a) Aufgabe
Anzeige der Länge und der Standardlänge der Formatbeschriftung ($lbtest.)
- Benutzung der Option fmtlib
- Durch Speichern von Formatangaben in einer Datei.
b) Frage
Warum wird "HDL Cholesterol/Total Cholesterol
" zu "HDL
"?
c) Aufgabe
Aktualisieren Sie das Programm, um den vollständigen Testnamen in der Variablen lbtestcd
anzuzeigen, wenn keine Übereinstimmung im Format vorhanden ist.
- Ändern Sie die Default-Länge des Formatlabels beim Erstellen des Formats, oder
- Ändern Sie die in der Funktion put angegebene Breite des Formatlabels
Vorher |
Nachher |
d) Task
Aktualisieren Sie das Programm, um den Text "To Check
" anzuzeigen, wenn keine Übereinstimmung im Format vorhanden ist.
Vorher |
Nachher |