2016-10-05 5 views
0

Ich habe Daten in einer CSV-Datei. Die erste Zeile der Datei hat den Zeitpunkt, die zweite Zeile hat Symptome. Jeder Zeitpunkt ist eine verbundene Zelle für mehrere Symptome. Etwas wie:SAS-Datenmanipulation aus CSV-Datei, Zeilen zusammenführen

ID  Timepoint 1      Timepoint2 
     Symptom 1 Symptom 2 Symptom 3 Symptom 1 Symptom 2 Symptom 3 

1   0   1   1   2   1   2 

aber ich habe viele mehr Zeilen und Spalten

Ich mag würde ein SAS Daten wie folgt usw.

ID Timepoint  Symptom 1 Symptom 2 Symptom 3 
1   1   0   1  1 
1   2   2   1  2 

gesetzt bekommen

Antwort

1

Sie können die Verwendung Datenschritt, um die Daten in diese Struktur zu lesen.

data symptom; 
    infile cards firstobs=4; 
    input id @; 
    do timepoint=1,2; 
     input symptom1-symptom3 @; 
     output; 
     end; 
    cards; 
ID  Timepoint 1      Timepoint2 
     Symptom 1 Symptom 2 Symptom 3 Symptom 1 Symptom 2 Symptom 3 

1   0   1   1   2   1   2 
;;;; 
    run; 
proc print; 
    run; 
+0

Danke. Das funktioniert gut mit CARDS, aber wenn ich versuche, das aus der CSV-Datei zu tun, bekomme ich ein Durcheinander. z.B. PROC IMPORT OUT = WORK.Symptome DATAFILE = "C: \ persönliche \ Consults \ TA Sciences \ Laser Studie \ Symptoms.csv" DBMS = CSV REPLACE; GETNAMES = JA; DATAROW = 2; RUN; gibt mir eine Menge Variablen mit dem Namen VAR2 VAR3 usw. Wenn ich es zu datarow = 3 ändere, bekomme ich ein ähnliches Chaos. –

+0

Entschuldigung wegen des unordentlichen Formats. Kommentare hier sind schwer zu bearbeiten. –

+1

Ersetzen Sie einfach INFILE CARDS durch den Pfad zu Ihrer CSV. Kein PROC IMPORT involviert. –

Verwandte Themen