Formt eine Tabelle, die dünne Datensätze enthält, in eine Tabelle mit breiten Datensätzen um.
| Parameter | Beschreibung |
|---|---|
| table | Gibt die zu verwendende Eingabetabelle an. |
| id | Gibt die ID-Variablen an, die von der Tabelle in die casOut-Tabelle kopiert werden sollen. |
| inputs | Gibt die Eingabevariablen für die Analyse an. |
| casOut | Gibt die Einstellungen für eine Ausgabetabelle an. |
| attributes | Gibt die Variablenattribute an. |
| charSeparatorChar | Gibt ein Zeichen oder eine Zeichenfolge an, das/die zum Trennen von Teilen der casOut-Variablennamen verwendet wird, wenn beide CHAR- oder VARCHAR-Zeichenfolgen sind. |
| cumFreqName | Gibt den Variablennamen für die kumulative Häufigkeit in der casOut-Tabelle an. Die Variable zeigt die kumulative Häufigkeit der Gruppe, zu der der Datensatz gehört, in Bezug auf die Eingabetabelle. |
| frequencyName | Gibt den Variablennamen in der casOut-Tabelle an, der Häufigkeiten enthält. Andernfalls lautet diese Variable _Frequency_. |
| groupIdName | Gibt die Variable in der Tabelle an, die Gruppen-IDs enthält. |
| journalTrace | Wenn auf True gesetzt, schreibt detaillierte Nachverfolgungsinformationen in das SAS-Protokoll. |
| keyModify | Gibt an, ob Sie Zeichenwerte in den Variablen der orderBy-Variablenliste in Großbuchstaben (U) umwandeln, aufeinanderfolgende Leerzeichen zu einem einzigen Leerzeichen (C) verdichten oder beides möchten. |
| max | Gibt die Variablen an, für die Sie den Maximalwert wünschen. |
| maxPosition | Gibt den maximalen Wert der Positionsvariable an. Datensätze, deren Positionsvariablenwert größer als der maxPosition-Wert ist, werden ignoriert. |
| mean | Gibt die Variablen an, für die Sie den Mittelwert wünschen. |
| min | Gibt die Variablen an, für die Sie den Minimalwert wünschen. |
| nMiss | Gibt die Variablen an, für die Sie die Anzahl der fehlenden Werte wünschen. |
| noPrefix | Wenn auf True gesetzt und wenn dieselbe Variable, z. B. foo, für sum, min, max, nMiss oder mean angegeben ist, sind die Variablennamen in der casOut-Tabelle _sum_, _min_, _max_, _nMiss_, _mean_ anstelle von z. B. foo_sum, foo_min usw. |
| numSeparatorNum | Gibt ein Zeichen oder eine Zeichenfolge an, das/die zum Trennen von Teilen der casOut-Tabellennamen verwendet wird, wenn beide numerisch sind. |
| orderByTable | Gibt die orderByTable-Tabelle an, die durch Ausführen der Aktion groupBy oder groupByInfo erhalten wird. |
| range | Gibt die Variablen an, für die Sie den Wertebereich wünschen. |
| sum | Gibt die Variablen an, für die Sie die Werte summieren möchten. |
Dieser Schritt erstellt eine Beispieltabelle im 'langen' Format mit Studenten-IDs, Fachnamen und deren Noten. Diese Tabelle wird als Eingabe für die Umformung in ein 'breites' Format verwendet.
| 1 | DATA mycas.long_data; |
| 2 | INFILE DATALINES delimiter=','; |
| 3 | LENGTH student_id 8 subject $ 10 grade 8; |
| 4 | INPUT student_id subject $ grade; |
| 5 | DATALINES; |
| 6 | 1,Math,90 |
| 7 | 1,Science,85 |
| 8 | 1,History,88 |
| 9 | 2,Math,95 |
| 10 | 2,Science,92 |
| 11 | 2,History,89 |
| 12 | ; |
| 13 | RUN; |
Dieses Beispiel zeigt, wie eine lange Tabelle, in der jedes Fach eine eigene Zeile pro Schüler hat, in eine breite Tabelle umgewandelt wird, in der jeder Schüler eine einzige Zeile mit separaten Spalten für die Noten der einzelnen Fächer hat.
| 1 | PROC CAS; |
| 2 | dataShaping.longToWide / |
| 3 | TABLE={name='long_data'}, |
| 4 | id={'student_id'}, |
| 5 | inputs={{name='grade'}}, |
| 6 | casOut={name='wide_data', replace=true}; |
| 7 | RUN; |
| 8 | TABLE.fetch / TABLE='wide_data'; |
| 9 | RUN; |
Dieses Beispiel demonstriert die Verwendung einer 'orderByTable', um die Reihenfolge der neuen Spalten in der breiten Ausgabetabelle explizit zu steuern. Zuerst wird 'groupByInfo' verwendet, um eine Ordnungstabelle zu erstellen, die dann von 'longToWide' genutzt wird.
| 1 | PROC CAS; |
| 2 | dataShaping.groupByInfo / |
| 3 | TABLE='long_data' |
| 4 | inputs={{name='subject'}} |
| 5 | casOut={name='myOrder', replace=true}; |
| 6 | dataShaping.longToWide / |
| 7 | TABLE={name='long_data'} |
| 8 | id={'student_id'} |
| 9 | inputs={{name='grade'}} |
| 10 | orderByTable={name='myOrder'} |
| 11 | casOut={name='wide_data_ordered', replace=true}; |
| 12 | RUN; |
| 13 | TABLE.fetch / TABLE='wide_data_ordered'; |
| 14 | RUN; |
Dieses Beispiel formt nicht nur die Tabelle um, sondern berechnet auch aggregierte Statistiken (Mittelwert und Summe) für die Noten jedes Schülers über alle Fächer hinweg.
| 1 | PROC CAS; |
| 2 | dataShaping.longToWide / |
| 3 | TABLE={name='long_data'}, |
| 4 | id={'student_id'}, |
| 5 | inputs={{name='grade'}}, |
| 6 | mean={'grade'}, |
| 7 | sum={'grade'}, |
| 8 | casOut={name='wide_data_stats', replace=true}; |
| 9 | RUN; |
| 10 | TABLE.fetch / TABLE='wide_data_stats'; |
| 11 | RUN; |