Das Skript generiert zwei Tabellen (STUDENT und TEST) mittels In-Stream-Daten (DATALINES). Es sortiert diese Tabellen nach der Kennung (ID) und führt dann zwei separate Zusammenführungen durch. Die erste Zusammenführung (roster) behält alle Daten bei und kennzeichnet fehlende Namen. Die zweite (new_roster) behält nur die Studenten, die den Test bestanden haben, behandelt Fälle von Abwesenheit in der Studentendatei und extrahiert den Nachnamen für eine finale Sortierung.
Datenanalyse
Type : CREATION_INTERNE
Die Daten sind direkt über die DATALINES-Anweisung in den Code integriert.
1 Codeblock
DATA STEP Data
Erklärung : Erstellung der Tabelle STUDENT mit ID und NAME (langes Format $30) aus den In-Stream-Daten.
Kopiert!
DATA STUDENT;
INPUT ID NAME & $30.;
DATALINES;
1 John Torres 5 Alex Antoniou 3 Thomas Friend
2 Sheldon Goldstein 11 Joanne Dipietro 12 Bill Murray
21 Janet Reno 4 Deborah Smith 6 Don Dubin 7 Alice Ford
8 Diane Farley 9 Laura Easton 10 Brian Fishmann
13 Eric Garrett 14 James Galt 15 Toni Gilman
;
1
DATA STUDENT;
2
INPUT ID NAME & $30.;
3
DATALINES;
4
1 John Torres 5 Alex Antoniou 3 Thomas Friend
5
2 Sheldon Goldstein 11 Joanne Dipietro 12 Bill Murray
6
21 Janet Reno 4 Deborah Smith 6 Don Dubin 7 Alice Ford
7
8 Diane Farley 9 Laura Easton 10 Brian Fishmann
8
13 Eric Garrett 14 James Galt 15 Toni Gilman
9
;
2 Codeblock
DATA STEP Data
Erklärung : Erstellung der Tabelle TEST mit ID und SCORE aus den In-Stream-Daten.
Erklärung : Sortierung beider Tabellen nach dem Joinschlüssel ID.
Kopiert!
proc sort data=STUDENT;
by ID;
run;
proc sort data=TEST;
by ID;
run;
1
PROC SORTDATA=STUDENT;
2
BY ID;
3
RUN;
4
5
PROC SORTDATA=TEST;
6
BY ID;
7
RUN;
4 Codeblock
DATA STEP Data
Erklärung : Zusammenführung (Merge) der Tabellen nach ID. Erstellung eines Standardwerts für NAME, wenn die ID nicht in STUDENT vorhanden ist.
Kopiert!
data roster;
merge STUDENT (in=in_student_file) TEST (in=in_test_file);
by ID;
if not in_student_file then NAME='Not in Student File';
run;
1
DATA roster;
2
MERGE STUDENT (in=in_student_file) TEST (in=in_test_file);
3
BY ID;
4
IF not in_student_file THEN NAME='Not in Student File';
5
RUN;
5 Codeblock
DATA STEP Data
Erklärung : Zweite Zusammenführung, die Datensätze filtert (subsetting IF), um nur die in TEST vorhandenen zu behalten. Extraktion des letzten Wortes von NAME in die Variable 'last'.
Kopiert!
data new_roster;
merge STUDENT (in=in_student_file) TEST (in=in_test_file);
by ID;
if in_test_file;
if not in_student_file then do;
NAME='Not in Student File';
last='ZZZ';
end;
else last=scan(NAME, -1);
run;
1
DATA new_roster;
2
MERGE STUDENT (in=in_student_file) TEST (in=in_test_file);
3
BY ID;
4
IF in_test_file;
5
IF not in_student_file THENDO;
6
NAME='Not in Student File';
7
last='ZZZ';
8
END;
9
ELSE last=scan(NAME, -1);
10
RUN;
6 Codeblock
PROC SORT
Erklärung : Sortierung der resultierenden Tabelle new_roster nach Nachname.
Kopiert!
proc sort data=new_roster;
by last;
run;
1
PROC SORTDATA=new_roster;
2
BY last;
3
RUN;
7 Codeblock
PROC PRINT
Erklärung : Anzeige der Abschlussberichte.
Kopiert!
proc print data=roster;
title'Problem 14.8a';
id NAME;
run;
proc print data=new_roster;
title'Problem 14.8b';
id NAME;
var ID SCORE;
run;
1
PROC PRINTDATA=roster;
2
title'Problem 14.8a';
3
id NAME;
4
RUN;
5
6
PROC PRINTDATA=new_roster;
7
title'Problem 14.8b';
8
id NAME;
9
var ID SCORE;
10
RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright (c) 2016 Scott Bass (sas_l_739 @yahoo.com.au) - Im referenzierten TEMPLATE.sas-Datei erkannt.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.