Eher seltsames Problem, das ich gerade entdeckt habe. Ich führe den folgenden Code in SAS aus.Datenlinien, die nicht durch% funktionieren, sind in SAS enthalten.
data manual_input;
infile datalines dlm=',';
length name $ 32 ;
input name $ varlist_no ;
datalines;
K0002,1
B0000,1
;
run;
Wenn ich dies normal in meinem erweiterten Editor in Enterprise Guide auf unserem Unix-Server ausführen, funktioniert es gut, keine Probleme.
Wenn ich es durch ein% include-Anweisung ausführen, wie folgt:
filename ds_code "/wload/something/something/foo/bar";
%include ds_code ("varlist_input_test.sas") /source2;
Der Code funktioniert nicht mehr. Ich bekomme Fehler wie folgt:
NOTE: Invalid data for varlist_no in line 24 7-80.
RULE: ----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
24 CHAR K0002,1.
ZONE 43333230222222222222222222222222222222222222222222222222222222222222222222222222
NUMR B0002C1D000000000000000000000000000000000000000000000000000000000000000000000000
name=K0002 varlist_no=. _ERROR_=1 _N_=1
NOTE: Invalid data for varlist_no in line 25 7-80.
25 CHAR B0000,1.
ZONE 43333230222222222222222222222222222222222222222222222222222222222222222222222222
NUMR 20000C1D000000000000000000000000000000000000000000000000000000000000000000000000
name=B0000 varlist_no=. _ERROR_=1 _N_=2
NOTE: The data set WORK.MANUAL_INPUT has 2 observations and 2 variables.
NOTE: Compressing data set WORK.MANUAL_INPUT increased size by 100.00 percent.
Compressed is 2 pages; un-compressed would require 1 pages.
Was gibt ?! Ich habe eine Komma-getrennte Eingabe angegeben. Ich verstehe auch, warum Datalines innerhalb eines Makros nicht funktionieren würden - warum müssten Sie eine statische Dateneingabe wiederholt ausführen? Ich glaube jedoch, dass es vollkommen akzeptabel ist, eine Include-Anweisung zu verwenden, um einen Codeabschnitt aufzurufen, der Karten/Datenlinien verwendet.
Wer hat irgendwelche Ideen?
Sie können die 'TERMSTR hinzufügen =' Option der '% INCLUDE'-Anweisung. – Tom
Guter Punkt, hinzugefügt. – Joe