proc report
Hallo,
für die Überprüfung des Datenimports ORACLE nach SAS möchte ich für jede in SAS erzeugte Tabelle den ersten, den mittleren und den letzten Datensatz ausdrucken. Hierzu habe ich ein Makro programmiert, das mir
1. den ersten, mittleren und letzten Datensatz selektiert
2. über proc transpose ein dataset erzeugt, in der es nur die Variablen Var, Label, First, Middle und Last gibt. Var enthält den Variablennamen, Label das Label und First, Middle und Last die Werte der drei selektierten Datensätze.
Beispiel:
---------------------------------------------------------
Center PatID Age Sex Visdate (mehr Variablen ...)
---------------------------------------------------------
1 1 50 M 15NOV2008
1 2 56 F 17NOV2008
2 1 78 M 10NOV2008
2 2 54 M 12NOV2008
2 3 62 F 15NOV2008
...
60 3 59 M 17NOV2008
...
120 1 68 M 09NOV2008
120 2 56 F 10NOV2008
120 3 70 F 20NOV2008
---------------------------------------------------------
Über proc transpose erzeugt daraus folgendes dataset:
-----------------------------------------------
Var Label First Middle Last
-----------------------------------------------
Center Center 1 60 120
PatID Patient ID 1 3 3
Age Patient Age 50 59 70
Sex Patent Gender M M F
Visdate Visit Date 15NOV2008 17NOV2008 20NOV2008
(mehr Variablen ... ... ... ...
-----------------------------------------------
so weit, so gut, jetzt kommt das eigentliche Problem:
beim Erstellen eines Ausdrucks über proc report fehlen die Werte zu alle ehemals numerischen Variablen, obwohl sie in dem von proc transpose generierten dataset enthalten sind. Hier wurden vorab alle Variablennamen in die Makrovariable varlist geschrieben:
var &varlist;
run;
proc report data=&SASdsin._tr nowd headline headskip;
column var label first ;
define var / display;
define label / display;
define first / display width = 50;
title1 'First Observation';
run;
Hat jemand eine Erklärung?
MfG
Thomas Zink
-------------
- Anmelden oder Registrieren um Kommentare zu schreiben

Hi, verstehe ich nicht. Die
Hi,
verstehe ich nicht. Die einzige angeforderte Variable ist first. Und da steht dann für z.B. Age was drin? Blank? Aber bei Gender steht M?
Ich bekomme hier alles so wie es erwarten würde:
input Var $ Label $ First $ Middle $ Last $;
cards;
Center Center 1 60 120
PatID Patient 1 3 3
Age PatAge 50 59 70
Sex PatGend M M F
Visdate VisDate 15NOV08 17NOV08 20NOV08
;
proc report data=test headline headskip nowd;
column var label first middle last ;
define var / display;
define label / display;
define first / display;
define middle /display;
define last /display;
title1 'First Observation';
quit;
Gruß
Simon