Ich komme zu SAS von R, in dem dieses Problem ziemlich einfach zu lösen ist.Geben Sie leere Werte durch Zeichenkette in PROC IMPORT
Ich versuche, eine Reihe von CanSim CSV-Dateien (eine example table here) mit einer %Macro
Funktion zu laden.
%Macro ReadCSV (infile , outfile);
PROC IMPORT
DATAFILE= &infile.
OUT= &outfile.
DBMS=CSV REPLACE;
GETNAMES=YES;
DATAROW=2;
RUN;
%Mend ReadCSV;
%ReadCSV("\\DATA\CanSimTables\02820135-eng.csv", work.cs02820135);
%ReadCSV("\\DATA\CanSimTables\02820158-eng.csv", work.cs02820158);
Das Problem ist, dass die numerische Value
Spalte „..“ in der alle csv ist, wenn der Wert fehlt. Dies erzeugt einen Fehler, wenn IMPORT
zu den Zeilen mit dieser Zeichenfolge gelangt.
Gibt es eine Möglichkeit, IMPORT
mitzuteilen, dass ".." entfernt oder als fehlende Werte behandelt werden sollte? (Ich fand Foren, die sich auf die DSD
Option beziehen, aber das scheint mir hier nicht zu helfen.)
Danke!
Haben die Dateien jedes Jahr das gleiche Layout? Wenn ja, sollten Sie nur einen Datenschritt schreiben, um die Dateien zu lesen. Dann haben Sie die Kontrolle darüber, wie es die Daten liest. – Tom
Ich bin nicht sicher, was Sie genau meinen, aber nein (?): In jeder CSV-Datei sind die Zeilen nach Ort und Zeit indiziert, die zwischen den Dateien unterscheiden können. Die Spalten (die Nummer und ihre Namen) unterscheiden sich. Es gibt jedoch Ähnlichkeiten. Zum Beispiel ist der numerische Wert immer in einer Spalte namens "Value". Hilft mir das? –
Können Sie bitte das SAS-Protokoll einfügen? Das SAS-Protokoll zeigt Informationen über den verwendeten Import- und Datenschritt an - wir können es als Vorlage verwenden, um das Verhalten zu ändern. – Altons